PHP
Compositeur Dependency Manager
Recherche…
Introduction
Composer est le gestionnaire de dépendances le plus utilisé de PHP. C'est analogue à npm
dans Node, pip
à Python ou NuGet
à .NET.
Syntaxe
- chemin php / to / composer.phar [commande] [options] [arguments]
Paramètres
Paramètre | Détails |
---|---|
Licence | Définit le type de licence que vous souhaitez utiliser dans le projet. |
auteurs | Définit les auteurs du projet, ainsi que les détails de l'auteur. |
soutien | Définit les e-mails de support, le canal irc et divers liens. |
exiger | Définit les dépendances réelles ainsi que les versions de package. |
require-dev | Définit les packages nécessaires au développement du projet. |
suggérer | Définit les suggestions de paquets, c'est-à-dire les paquets pouvant aider s'ils sont installés. |
autoload | Définit les règles de chargement automatique du projet. |
chargement automatique-dev | Définit les règles de chargement automatique pour développer le projet. |
Remarques
Le chargement automatique ne fonctionne que pour les bibliothèques qui spécifient des informations de chargement automatique. La plupart des bibliothèques respectent une norme telle que PSR-0 ou PSR-4 .
Liens utiles
- Packagist - Parcourir les paquets disponibles (que vous pouvez installer avec Composer).
- Documentation officielle
- Guide de mise en route officiel
Quelques suggestions
- Désactivez xdebug lors de l'exécution de Composer.
- Ne lancez pas Composer en tant que
root
. Les paquets ne sont pas fiables.
Qu'est-ce qu'un compositeur?
Composer est un gestionnaire de dépendances / paquets pour PHP. Il peut être utilisé pour installer, suivre et mettre à jour les dépendances de votre projet. Composer prend également en charge le chargement automatique des dépendances sur lesquelles repose votre application, ce qui vous permet d'utiliser facilement la dépendance au sein de votre projet sans vous soucier de les inclure en haut d'un fichier donné.
Les dépendances de votre projet sont répertoriées dans un fichier composer.json
qui se trouve généralement dans la racine de votre projet. Ce fichier contient des informations sur les versions requises des packages pour la production et le développement.
Un aperçu complet du schéma composer.json
est disponible sur le site Web Composer .
Ce fichier peut être édité manuellement en utilisant n'importe quel éditeur de texte ou automatiquement via la ligne de commande via des commandes telles que composer require <package>
ou composer require-dev <package>
.
Pour commencer à utiliser composer dans votre projet, vous devrez créer le fichier composer.json
. Vous pouvez soit le créer manuellement ou simplement exécuter le composer init
. Une fois que vous avez lancé le composer init
dans votre terminal, il vous demandera des informations de base sur votre projet: Nom du package ( fournisseur / package - par exemple laravel/laravel
), Description - optionnel , Auteur et autres informations telles que Stabilité minimale, Licence et Obligatoire Paquets.
Le require
clé dans votre composer.json
fichier indique Composer quels paquets votre projet dépend. require
prend un objet qui mappe les noms de paquet (par exemple monolog / monolog ) aux contraintes de version (par exemple, 1.0. *).
{
"require": {
"composer/composer": "1.2.*"
}
}
Pour installer les dépendances définies, vous devrez exécuter la commande composer install
et les pilotes définis correspondant à la contrainte de version
fournie seront ensuite téléchargés dans le répertoire du vendor
. C'est une convention de mettre du code tiers dans un répertoire nommé vendor
.
Vous remarquerez que la commande install
également créé un fichier composer.lock
.
Un fichier composer.lock
est généré automatiquement par Composer. Ce fichier est utilisé pour suivre les versions actuellement installées et l'état de vos dépendances. L'exécution du composer install
les packages exactement à l'état stocké dans le fichier de verrouillage.
Chargement automatique avec Composer
Alors que composer fournit un système de gestion des dépendances pour les projets PHP (par exemple, Packagist ), il peut notamment servir d'autochargeur, en spécifiant où rechercher des espaces de noms spécifiques ou inclure des fichiers de fonction génériques.
Il commence par le fichier composer.json
:
{
// ...
"autoload": {
"psr-4": {
"MyVendorName\\MyProject": "src/"
},
"files": [
"src/functions.php"
]
},
"autoload-dev": {
"psr-4": {
"MyVendorName\\MyProject\\Tests": "tests/"
}
}
}
Ce code de configuration garantit que toutes les classes de l'espace de noms MyVendorName\MyProject
sont mappées au répertoire src
et à toutes les classes de MyVendorName\MyProject\Tests
dans le répertoire tests
(relatif au répertoire racine). Il inclura également automatiquement le fichier functions.php
.
Après l'avoir placé dans votre fichier composer.json
, exécutez la composer update
à composer update
dans un terminal pour que le compositeur mette à jour les dépendances, le fichier de verrouillage et génère le fichier autoload.php
. Lors du déploiement dans un environnement de production, vous utiliseriez le composer install --no-dev
. Le fichier autoload.php
se trouve dans le répertoire du vendor
, qui doit être généré dans le répertoire où réside composer.json
.
Vous devez require
ce fichier au début du processus de configuration du cycle de vie de votre application en utilisant une ligne similaire à celle ci-dessous.
require_once __DIR__ . '/vendor/autoload.php';
Une fois inclus, le fichier autoload.php
se charge de charger toutes les dépendances que vous avez fournies dans votre fichier composer.json
.
Quelques exemples du chemin de classe vers le mappage de répertoire:
-
MyVendorName\MyProject\Shapes\Square
➔src/Shapes/Square.php
. -
MyVendorName\MyProject\Tests\Shapes\Square
➔tests/Shapes/Square.php
.
Avantages de l'utilisation de Composer
Pistes Composer version des paquets que vous avez installés dans un fichier appelé composer.lock
, qui est destiné à être commis au contrôle de version, de sorte que lorsque le projet est cloné dans le futur, en cours d' exécution tout simplement composer install
téléchargera et installera toutes les dépendances de projet .
Composer s'occupe des dépendances PHP par projet. Cela facilite la mise en place de plusieurs projets sur une seule machine qui dépendent de versions distinctes d’un package PHP.
Composer suit les dépendances uniquement destinées aux environnements de développement
composer require --dev phpunit/phpunit
Composer fournit un chargeur automatique, ce qui le rend extrêmement facile à utiliser avec n'importe quel package. Par exemple, après avoir installé Goutte avec composer require fabpot/goutte
, vous devez immédiatement utiliser Goutte dans un nouveau projet:
<?php
require __DIR__ . '/vendor/autoload.php';
$client = new Goutte\Client();
// Start using Goutte
Composer vous permet de mettre facilement à jour un projet avec la dernière version autorisée par votre composer.json. PAR EXEMPLE. composer update fabpot/goutte
, ou pour mettre à jour chacune des dépendances de votre projet: composer update
.
Différence entre «compositeur installé» et «compositeur mis à jour»
composer update
composer update
mettra à jour nos dépendances telles qu’elles sont spécifiées dans composer.json
.
Par exemple, si notre projet utilise cette configuration:
"require": {
"laravelcollective/html": "2.0.*"
}
En supposant que nous ayons réellement installé la version 2.0.1
du package, l'exécution de la composer update
entraînera une mise à niveau de ce package (par exemple vers 2.0.2
, s'il a déjà été publié).
En détail composer update
va:
- Lire
composer.json
- Supprimer les packages installés qui ne sont plus nécessaires dans
composer.json
- Vérifier la disponibilité des dernières versions de nos packages requis
- Installer les dernières versions de nos packages
- Mettre à jour
composer.lock
pour stocker la version des paquets installés
composer install
composer install
installera toutes les dépendances spécifiées dans le fichier composer.lock
à la version spécifiée (verrouillée), sans rien mettre à jour.
En détail:
- Lire le fichier
composer.lock
- Installez les packages spécifiés dans le fichier
composer.lock
Quand installer et quand mettre à jour
composer update
est principalement utilisée dans la phase de développement pour mettre à jour nos packages de projets.composer install
est principalement utilisée dans la «phase de déploiement» pour installer notre application sur un serveur de production ou sur un environnement de test, en utilisant les mêmes dépendances stockées dans le fichiercomposer.lock
créé par lacomposer update
.
Commandes Compositeur Disponibles
Commander | Usage |
---|---|
sur | Informations succinctes sur Compositeur |
archiver | Créer une archive de ce package compositeur |
Feuilleter | Ouvre l'URL du référentiel du package ou la page d'accueil dans votre navigateur. |
vider le cache | Efface le cache de paquet interne du compositeur. |
vider le cache | Efface le cache de paquet interne du compositeur. |
config | Définir les options de configuration |
créer-projet | Créez un nouveau projet à partir d'un package dans un répertoire donné. |
dépend | Indique quels paquets provoquent l'installation du paquet donné |
diagnostiquer | Diagnostique le système pour identifier les erreurs communes. |
vidage automatique | Vide l'autochargeur |
vidage automatique | Vide l'autochargeur |
exec | Exécuter un script / binaire vendu |
global | Autorise l'exécution des commandes dans le répertoire global composeur ($ COMPOSER_HOME). |
Aidez-moi | Affiche l'aide pour une commande |
maison | Ouvre l'URL du référentiel du package ou la page d'accueil dans votre navigateur. |
Info | Afficher des informations sur les paquets |
init | Crée un fichier composer.json de base dans le répertoire en cours. |
installer | Installe les dépendances du projet à partir du fichier composer.lock s'il est présent ou utilise le composer.json. |
licences | Afficher des informations sur les licences des dépendances |
liste | Listes de commandes |
dépassé | Affiche une liste des packages installés pour lesquels des mises à jour sont disponibles, y compris leur dernière version. |
interdit | Indique quels paquets empêchent l'installation du package donné |
retirer | Supprime un paquet de require ou require-dev |
exiger | Ajoute les packages requis à votre composer.json et les installe |
script de lancement | Exécutez les scripts définis dans composer.json. |
chercher | Rechercher des forfaits |
mise à jour automatique | Met à jour composer.phar avec la dernière version. |
selfupdate | Met à jour composer.phar avec la dernière version. |
montrer | Afficher des informations sur les paquets |
statut | Afficher une liste de paquets modifiés localement |
suggère | Afficher les suggestions de colis |
mettre à jour | Met à jour vos dépendances à la dernière version en fonction de composer.json et met à jour le fichier composer.lock. |
valider | Valide un composer.json et un composer.lock |
Pourquoi | Indique quels paquets provoquent l'installation du paquet donné |
pourquoi pas | Indique quels paquets empêchent l'installation du package donné |
Installation
Vous pouvez installer Composer localement, dans le cadre de votre projet ou globalement en tant qu'exécutable à l'échelle du système.
Localement
Pour installer, exécutez ces commandes dans votre terminal.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# to check the validity of the downloaded installer, check here against the SHA-384:
# https://composer.github.io/pubkeys.html
php composer-setup.php
php -r "unlink('composer-setup.php');"
Cela va télécharger composer.phar
(un fichier archive PHP) dans le répertoire en cours. Maintenant, vous pouvez exécuter php composer.phar
pour utiliser Composer, par exemple
php composer.phar install
Globalement
Pour utiliser Composer globalement, placez le fichier composer.phar dans un répertoire qui fait partie de votre PATH
mv composer.phar /usr/local/bin/composer
Maintenant, vous pouvez utiliser composer
n'importe où au lieu de php composer.phar
, par exemple
composer install