by ndf on 14-04-2017

Composer and Drupal 8 module development

Did you know that when developing a module(s) locally you can now easily do this in separate git repositories.
This is very useful because it gives the opportunity to both use a separate Git for your custom module and an IDE like PHPstorm+Xdebug for the Drupal integration at the same time.

The directory structure will look like this:

~/DrupalSites/my_drupal_project  <-- contains the Drupal installation.
~/DrupalModules/my_drupal_module <-- contains the module code.

Instead of copy-pasting the module inside the Drupal installation, we will use a symlink. This is managed by composer.

The symlink looks like this:

$ cd ~/DrupalSites/my_drupal_project/modules/contrib
$ ls -l
my_drupal_module -> ../../../../DrupalModules/my_drupal_module

How it works

1. Install Drupal as you like in ~/DrupalSites/my_drupal_project . I used 8.3+ here.
2. Create the custom module in ~/DrupalModules/my_drupal_module.
3. In the custom module add composer.json:

    "name": "drupal/my_drupal_module",
    "description": "My Drupal module.",
    "type": "drupal-module",
    "license": "GPL-2.0+"

4. In the Drupal project you add the following items to composer.json via the command-line

$ composer config repositories.my_drupal_module path ~/DrupalModules/my_drupal_module
$ composer require drupal/my_drupal_module:"*"


To validate when you check the composer.json of the Drupal project 2 items new:

    "require": {
        "drupal/my_drupal_module": "*"


    "repositories": [
            "type": "path",
            "url": "~/WebWork/DrupalModules/dxex_classifier"


Author: Niels de Feyter