diff --git a/src/content/daily-email/2023-10-10.md b/src/content/daily-email/2023-10-10.md new file mode 100644 index 00000000..9b41c5a0 --- /dev/null +++ b/src/content/daily-email/2023-10-10.md @@ -0,0 +1,56 @@ +--- +title: > + Why use Composer to manage Drupal dependencies? +pubDate: 2023-10-10 +permalink: > + archive/2023/10/10/why-use-composer-to-manage-drupal-dependencies +tags: + - software-development + - drupal + - php + - phpc + - composer +--- + +One of the initial negatives when Drupal 8 launched was introducing Composer, PHP's dependency manager, and how it could affect non-technical users. + +When I started doing Drupal, I downloaded the .tar.gz or .zip file of Drupal, extracted it, and placed it within my project. + +I did the same for any additional modules I needed. + +To update them, I needed to delete my files and repeat the process of downloading and replacing them. + +## Drush + +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. + +What if you needed to install a module like Pathauto, which has dependencies you also need to download and install? + +With Drush or downloading the files manually, you'd need to download the dependencies separately. + +## Composer + +Composer is a dependency manager, which means it can handle these dependencies for us. + +It looks at each project's `composer.json` file to find its dependencies and downloads them. + +For example, to install Pathauto, you run `composer require drupal/pathauto`. + +Within its output, you'll see this: + +```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) +``` + +As well as Pathauto, it's downloading its dependencies - ctools and pathauto. + +Instead of downloading three modules, we can do it with one command. + +In fact, we don't need to know what its dependencies are - Composer will do that. + +Also, updating the modules is just another simple command - `composer update`. + +While it may be intimidating to non-technical users, learning a few simple commands makes installing and updating modules much easier!