--- 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: ```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) ``` 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!