Slide 1

Slide 1 text

Modern Drupal Development with Composer PHPSW Lightning Talks ‐ November 2016

Slide 2

Slide 2 text

Oliver Davies Senior Drupal/PHP Developer Appnova on Technologies @opdavies

Slide 3

Slide 3 text

The Old Ways Download an archive from Drupal.org Use Drush commands (drush dl) Use Drush Make

Slide 4

Slide 4 text

Composer Drupal Packagist (deprecated) Composer endpoints on Drupal.org (beta) Manage core and contrib as dependencies Both Drupal 7 and 8

Slide 5

Slide 5 text

Why? "Ge ng off the island" Be er versioning support Automa c dependency management

Slide 6

Slide 6 text

Add a new repository $ composer config \ repositories.drupal composer \ https://packages.drupal.org/8

Slide 7

Slide 7 text

composer.json { "repositories": { "drupal": { "type": "composer", "url": "https://packages.drupal.org/8" } } }

Slide 8

Slide 8 text

Custom directories "extra": { "installer-paths": { "modules/contrib/{$name}": ["type:drupal-module"], "profiles/contrib/{$name}": ["type:drupal-profile"], "themes/contrib/{$name}": ["type:drupal-theme"] } }

Slide 9

Slide 9 text

Adding Modules $ composer require drupal/pathauto:^1.0 ... - Installing drupal/token (1.0.0-beta2) Downloading: 100% - Installing drupal/ctools (3.0.0-alpha27) Downloading: 100% - Installing drupal/pathauto (1.0.0-beta1) Downloading: 100%

Slide 10

Slide 10 text

Adding Modules with Dependencies $ composer require drupal/address:^1.0 ... - Installing commerceguys/addressing (v1.0.0-beta1) Downloading: 100% ... - Installing drupal/address (1.0.0-rc3) Downloading: 100%

Slide 11

Slide 11 text

Composer project for Drupal projects Downloads core into web/ Uses Composer’s autoload.php Custom directories for modules, themes, profiles Manages directories and file permissions Includes Drush and Drupal Console

Slide 12

Slide 12 text

Composer project for Drupal projects $ composer create-project \ drupal-composer/drupal-project:8.x-dev \ some-dir --stability dev \ --no-interaction

Slide 13

Slide 13 text

Demo 0:00 / 1:26

Slide 14

Slide 14 text

Resources Using Composer to manage Drupal site dependencies ‐ h ps:/ /www.drupal.org/node/2718229 Composer template for Drupal projects ‐ h ps:/ /github.com/drupal‐composer/drupal‐ project

Slide 15

Slide 15 text

Questions?