oliverdavies.uk/content/node.4f2f14d0-f991-4f10-b516-20e744c08fce.yml

129 lines
5.1 KiB
YAML

uuid:
- value: 4f2f14d0-f991-4f10-b516-20e744c08fce
langcode:
- value: en
type:
- target_id: daily_email
target_type: node_type
target_uuid: 8bde1f2f-eef9-4f2d-ae9c-96921f8193d7
revision_timestamp:
- value: '2025-05-11T09:00:30+00:00'
revision_uid:
- target_type: user
target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849
revision_log: { }
status:
- value: true
uid:
- target_type: user
target_uuid: b8966985-d4b2-42a7-a319-2e94ccfbb849
title:
- value: |
Why use Composer to manage Drupal dependencies?
created:
- value: '2023-10-10T00:00:00+00:00'
changed:
- value: '2025-05-11T09:00:30+00:00'
promote:
- value: false
sticky:
- value: false
default_langcode:
- value: true
revision_translation_affected:
- value: true
path:
- alias: /daily/2023/10/10/why-use-composer-to-manage-drupal-dependencies
langcode: en
body:
- value: |
<p>One of the initial negatives when Drupal 8 launched was introducing Composer, PHP's dependency manager, and how it could affect non-technical users.</p>
<p>When I started doing Drupal, I downloaded the .tar.gz or .zip file of Drupal, extracted it, and placed it within my project.</p>
<p>I did the same for any additional modules I needed.</p>
<p>To update them, I needed to delete my files and repeat the process of downloading and replacing them.</p>
<h2 id="drush">Drush</h2>
<p>Then, instead of doing it manually, I used Drush, the "Drupal shell", to download the files. This saved some time, but it still has down-sides.</p>
<p>What if you needed to install a module like Pathauto, which has dependencies you also need to download and install?</p>
<p>With Drush or downloading the files manually, you'd need to download the dependencies separately.</p>
<h2 id="composer">Composer</h2>
<p>Composer is a dependency manager, which means it can handle these dependencies for us.</p>
<p>It looks at each project's <code>composer.json</code> file to find its dependencies and downloads them.</p>
<p>For example, to install Pathauto, you run <code>composer require drupal/pathauto</code>.</p>
<p>Within its output, you'll see this:</p>
<pre><code class="language-plain">Package operations: 3 installs, 0 updates, 0 removals
- Downloading drupal/token (1.12.0)
- Downloading drupal/ctools (4.0.4)
- Downloading drupal/pathauto (1.12.0)
</code></pre>
<p>As well as Pathauto, it's downloading its dependencies - ctools and pathauto.</p>
<p>Instead of downloading three modules, we can do it with one command.</p>
<p>In fact, we don't need to know what its dependencies are - Composer will do that.</p>
<p>Also, updating the modules is just another simple command - <code>composer update</code>.</p>
<p>While it may be intimidating to non-technical users, learning a few simple commands makes installing and updating modules much easier!</p>
format: full_html
processed: |
<p>One of the initial negatives when Drupal 8 launched was introducing Composer, PHP's dependency manager, and how it could affect non-technical users.</p>
<p>When I started doing Drupal, I downloaded the .tar.gz or .zip file of Drupal, extracted it, and placed it within my project.</p>
<p>I did the same for any additional modules I needed.</p>
<p>To update them, I needed to delete my files and repeat the process of downloading and replacing them.</p>
<h2 id="drush">Drush</h2>
<p>Then, instead of doing it manually, I used Drush, the "Drupal shell", to download the files. This saved some time, but it still has down-sides.</p>
<p>What if you needed to install a module like Pathauto, which has dependencies you also need to download and install?</p>
<p>With Drush or downloading the files manually, you'd need to download the dependencies separately.</p>
<h2 id="composer">Composer</h2>
<p>Composer is a dependency manager, which means it can handle these dependencies for us.</p>
<p>It looks at each project's <code>composer.json</code> file to find its dependencies and downloads them.</p>
<p>For example, to install Pathauto, you run <code>composer require drupal/pathauto</code>.</p>
<p>Within its output, you'll see this:</p>
<pre><code class="language-plain">Package operations: 3 installs, 0 updates, 0 removals
- Downloading drupal/token (1.12.0)
- Downloading drupal/ctools (4.0.4)
- Downloading drupal/pathauto (1.12.0)
</code></pre>
<p>As well as Pathauto, it's downloading its dependencies - ctools and pathauto.</p>
<p>Instead of downloading three modules, we can do it with one command.</p>
<p>In fact, we don't need to know what its dependencies are - Composer will do that.</p>
<p>Also, updating the modules is just another simple command - <code>composer update</code>.</p>
<p>While it may be intimidating to non-technical users, learning a few simple commands makes installing and updating modules much easier!</p>
summary: null
field_daily_email_cta: { }