Composer

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen

Composer is een PHP dependency manager die wordt gebruikt door Drupal 8. Het werkt op locale basis. Oftewel: Per project wordt er voor gezorgd dat de juiste packages beschikbaar zijn. De reden om een dependency manager op te nemen in Drupal 8, is om beter gebruik te kunnen maken van de grote hoeveelheid PHP-packages die er bestaan.

Installatie

Je kunt Composer per project installeren, of globaal, dus één installatie voor alle projecten op dezelfde webserver. Ik kies deze laatste optie.

Installer downloaden & uitvoeren

cd ~/Downloads
curl -sS https://getcomposer.org/installer | php

met als uitvoer:

#!/usr/bin/env php
All settings correct for using Composer
Downloading...

Composer successfully installed to: /home/strompf/Downloads/Composer/composer.phar
Use it: php composer.phar

Verplaatsen naar een globaal bereikbare locatie + naam aanpassen

sudo mkdir /usr/local/bin/composer
sudo mv composer.phar /usr/local/bin/composer/composer

Locatie toevoegen aan $PATH

Betreffende regel in .bashrc wordt zoiets als:

PATH=/usr/local/bin/composer:$PATH

en maak 'm actie:

source ~/.bashrc

Bestand uitvoerbaar maken

Als Composer niet uitvoerbaar is, moet je 'm zo aanroepen: php composer.phar, en als-ie uitvoerbaar is, wordt dat composer.phar:

chmod +x /usr/local/bin/composer/composer

Test

Niet zo moeilijk:

composer

Wat ik in oktober 2015 een paar keer kreeg als uitvoer:

   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.0-dev (f85d965732d9505b69242a070dc0b381c9f6bbab) 2015-10-19 10:04:38

Usage:
 command [options] [arguments]

Options:
 --help (-h)           Display this help message
 --quiet (-q)          Do not output any message
 --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
 --version (-V)        Display this application version
 --ansi                Force ANSI output
 --no-ansi             Disable ANSI output
 --no-interaction (-n) Do not ask any interactive question
 --profile             Display timing and memory usage information
 --working-dir (-d)    If specified, use the given directory as working directory.

Available commands:
 about            Short information about Composer
 archive          Create an archive of this composer package
 browse           Opens the package's repository URL or homepage in your browser.
 clear-cache      Clears composer's internal package cache.
 clearcache       Clears composer's internal package cache.
 config           Set config options
 create-project   Create new project from a package into given directory.
 depends          Shows which packages depend on the given package
 diagnose         Diagnoses the system to identify common errors.
 dump-autoload    Dumps the autoloader
 dumpautoload     Dumps the autoloader
 global           Allows running commands in the global composer dir ($COMPOSER_HOME).
 help             Displays help for a command
 home             Opens the package's repository URL or homepage in your browser.
 info             Show information about packages
 init             Creates a basic composer.json file in current directory.
 install          Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.
 licenses         Show information about licenses of dependencies
 list             Lists commands
 remove           Removes a package from the require or require-dev
 require          Adds required packages to your composer.json and installs them
 run-script       Run the scripts defined in composer.json.
 search           Search for packages
 self-update      Updates composer.phar to the latest version.
 selfupdate       Updates composer.phar to the latest version.
 show             Show information about packages
 status           Show a list of locally modified packages
 suggests         Show package suggestions
 update           Updates your dependencies to the latest version according to composer.json, and updates the composer.lock file.
 validate         Validates a composer.json and composer.lock

Installatie van libraries voor Drupal

Voorbeeld:

cd /modules/commerce
composer install

Composer leest vervolgens het bestand composer.jso en ziet dat er drie libraries benodigd zijn:

commerceguys/intl library
commerceguys/tax library
commerceguys/addressing library

en installeert die vervolgens.

Zie ook

Bronnen