{ "uuid": [ { "value": "1f26890a-9a35-4ad1-a1f7-70ed2a2ddb32" } ], "langcode": [ { "value": "en" } ], "type": [ { "target_id": "daily_email", "target_type": "node_type", "target_uuid": "8bde1f2f-eef9-4f2d-ae9c-96921f8193d7" } ], "revision_timestamp": [ { "value": "2025-04-16T14:13:01+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?\n" } ], "created": [ { "value": "2023-10-10T00:00:00+00:00" } ], "changed": [ { "value": "2025-04-16T14:13:01+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": "\n

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>\n\n

When I started doing Drupal, I downloaded the .tar.gz or .zip file of Drupal, extracted it, and placed it within my project.<\/p>\n\n

I did the same for any additional modules I needed.<\/p>\n\n

To update them, I needed to delete my files and repeat the process of downloading and replacing them.<\/p>\n\n

Drush<\/h2>\n\n

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>\n\n

What if you needed to install a module like Pathauto, which has dependencies you also need to download and install?<\/p>\n\n

With Drush or downloading the files manually, you'd need to download the dependencies separately.<\/p>\n\n

Composer<\/h2>\n\n

Composer is a dependency manager, which means it can handle these dependencies for us.<\/p>\n\n

It looks at each project's composer.json<\/code> file to find its dependencies and downloads them.<\/p>\n\n

For example, to install Pathauto, you run composer require drupal\/pathauto<\/code>.<\/p>\n\n

Within its output, you'll see this:<\/p>\n\n

Package operations: 3 installs, 0 updates, 0 removals\n  - Downloading drupal\/token (1.12.0)\n  - Downloading drupal\/ctools (4.0.4)\n  - Downloading drupal\/pathauto (1.12.0)\n<\/code><\/pre>\n\n

As well as Pathauto, it's downloading its dependencies - ctools and pathauto.<\/p>\n\n

Instead of downloading three modules, we can do it with one command.<\/p>\n\n

In fact, we don't need to know what its dependencies are - Composer will do that.<\/p>\n\n

Also, updating the modules is just another simple command - composer update<\/code>.<\/p>\n\n

While it may be intimidating to non-technical users, learning a few simple commands makes installing and updating modules much easier!<\/p>\n\n ", "format": "full_html", "processed": "\n

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>\n\n

When I started doing Drupal, I downloaded the .tar.gz or .zip file of Drupal, extracted it, and placed it within my project.<\/p>\n\n

I did the same for any additional modules I needed.<\/p>\n\n

To update them, I needed to delete my files and repeat the process of downloading and replacing them.<\/p>\n\n

Drush<\/h2>\n\n

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>\n\n

What if you needed to install a module like Pathauto, which has dependencies you also need to download and install?<\/p>\n\n

With Drush or downloading the files manually, you'd need to download the dependencies separately.<\/p>\n\n

Composer<\/h2>\n\n

Composer is a dependency manager, which means it can handle these dependencies for us.<\/p>\n\n

It looks at each project's composer.json<\/code> file to find its dependencies and downloads them.<\/p>\n\n

For example, to install Pathauto, you run composer require drupal\/pathauto<\/code>.<\/p>\n\n

Within its output, you'll see this:<\/p>\n\n

Package operations: 3 installs, 0 updates, 0 removals\n  - Downloading drupal\/token (1.12.0)\n  - Downloading drupal\/ctools (4.0.4)\n  - Downloading drupal\/pathauto (1.12.0)\n<\/code><\/pre>\n\n

As well as Pathauto, it's downloading its dependencies - ctools and pathauto.<\/p>\n\n

Instead of downloading three modules, we can do it with one command.<\/p>\n\n

In fact, we don't need to know what its dependencies are - Composer will do that.<\/p>\n\n

Also, updating the modules is just another simple command - composer update<\/code>.<\/p>\n\n

While it may be intimidating to non-technical users, learning a few simple commands makes installing and updating modules much easier!<\/p>\n\n ", "summary": null } ], "feeds_item": [ { "imported": "2025-04-16T14:13:01+00:00", "guid": null, "hash": "18b329b870189395601442a5d226290c", "target_type": "feeds_feed", "target_uuid": "90c85284-7ca8-4074-9178-97ff8384fe76" } ] }