Composer
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 - 2016, handmating
Onduidelijk of dit nog relevant is.
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 - 2017, apt-get
sudo apt-get install composer
Geef daarna desgewenst het commando composer
om te verifiëren dat het werkt.
Composer bijwerken - mrt. 2017
Ik heb een te oude versie, want foutmelding
Drupal-project requires Composer version 1.0.0 or higher. Please update your Composer before continuing.
Commando
composer -V
geeft:
Composer version @package_branch_alias_version@ (1.0.0-beta2) 2016-03-27 16:00:34
Commando's
sudo apt-get update && sudo apt-get upgrade
helpen niet
Installatie van libraries voor Drupal
Voorbeeld:
cd /modules/commerce composer install
Composer leest vervolgens het bestand composer.json
en ziet dat er drie libraries benodigd zijn, en installeert ze:
commerceguys/intl library commerceguys/tax library commerceguys/addressing library
Vervolgens wordt het composer.lock
-bestand weggeschrijven. Deze beschrijft de specifieke versies van de betreffende libraries. Altijd handig om versie-conflicten te vermijden.