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

Quelques suggestions

  1. Désactivez xdebug lors de l'exécution de Composer.
  2. 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\Squaresrc/Shapes/Square.php .
  • MyVendorName\MyProject\Tests\Shapes\Squaretests/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 fichier composer.lock créé par la composer 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


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow