Maison outils de développement composer Vous apprendre à utiliser Composer pour gérer les dépendances

Vous apprendre à utiliser Composer pour gérer les dépendances

Aug 07, 2020 pm 01:23 PM
composer

La colonne tutorielle suivante de composer vous présentera l'utilisation de Composer pour gérer les dépendances. J'espère qu'elle sera utile aux amis qui en ont besoin !

Vous apprendre à utiliser Composer pour gérer les dépendances

composer était à l'origine un outil conçu pour gérer les dépendances des packages dans Symfony, le Framework PHP. Parce qu'il est simple et facile à utiliser, il est désormais devenu un projet open source indépendant. . De nombreux frameworks et bibliothèques peuvent désormais être installés et gérés à l’aide de composer.

En fait, en PHP, il existe depuis longtemps un tel outil de gestion des dépendances des packages, qui est PEAR. Cependant, les paramètres de PEAR sont trop compliqués et il est difficile de définir des dépendances pour des projets individuels, c'est pourquoi Composer est désormais apprécié du public.

Cette introduction est réservée aux utilisateurs, elle ne couvrira donc pas les parties que les développeurs de packages doivent connaître.

* Installation

Si vous êtes un utilisateur Windows, il vous suffit de télécharger le fichier d'installation et d'exécuter l'installation :

https://getcomposer.org/Composer-Setup.exe
Copier après la connexion

Si vous voulez pour l'installer manuellement, vous pouvez vous référer aux directives du site officiel :

http://getcomposer.org/doc/00-intro.md#installation-windows
Copier après la connexion

Si vous êtes un utilisateur d'un système UNIX Like, vous pouvez l'installer via cette commande : (curl doit d'abord être installé)

curl -sS https://getcomposer.org/installer | php
Copier après la connexion

Le programme d'installation vérifiera les paramètres PHP, puis téléchargera composer.phar dans le répertoire actuel. Pour exécuter composer, vous pouvez exécuter

php composer.phar
Copier après la connexion

ou simplement le changer en fichier exécutable

>mv composer.phar composer
>chmod +x composer
Copier après la connexion

puis exécuter ./composer.

Cependant, si vous en avez besoin dans différents répertoires de travail et qu'il n'y a aucun problème avec l'autorisation d'exécution, vous pouvez également copier le fichier directement dans /usr/local/bin.

* Définir les dépendances

Lorsque vous utilisez composer dans un projet, vous devez d'abord générer un fichier composer.json, qui spécifie le package et la version à utiliser. Par exemple, si vous devez utiliser phpmailer pour envoyer une lettre, vous pouvez la spécifier comme ceci :

{
"require": {
"phpmailer/phpmailer": "~5.2.7"
}
}
Copier après la connexion

puis exécuter l'installation :

eng-Hsu-Pingteki-MacBook-Air:2-1a fillano$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev)
  - Installing phpmailer/phpmailer (v5.2.7)
    Downloading: 100%         
Writing lock file
Generating autoload files
Feng-Hsu-Pingteki-MacBook-Air:2-1a fillano$
Copier après la connexion

C'est l'installation. Jetez un oeil à ce qui est installé :

Feng-Hsu-Pingteki-MacBook-Air:2-1a fillano$ ls -l
total 16
-rw-r--r--  1 fillano  staff    66 10 11 18:15 composer.json
-rw-r--r--  1 fillano  staff  2330 10 11 18:16 composer.lock
drwxr-xr-x  5 fillano  staff   170 10 11 18:16 vendor
Copier après la connexion

D'après les fichiers dans le répertoire, on peut constater qu'à l'origine il n'y avait que le fichier composer.json, mais après l'installation, il y a un fichier composer.lock et le répertoire des fournisseurs. Jetons d'abord un coup d'œil au contenu de composer.lock :

Feng-Hsu-Pingteki-MacBook-Air:2-1a fillano$ cat composer.lock
{
    "_readme": [
        "This file locks the dependencies of your project to a known state",
        "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file"
    ],
    "hash": "065c23f92d5ae579cb91beff67f41196",
    "packages": [
        {
            "name": "phpmailer/phpmailer",
            "version": "v5.2.7",
            "source": {
                "type": "git",
                "url": "https://github.com/PHPMailer/PHPMailer.git",
                "reference": "8717a79565b2c0ed67f851d70e1949febdf3b226"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/8717a79565b2c0ed67f851d70e1949febdf3b226",
                "reference": "8717a79565b2c0ed67f851d70e1949febdf3b226",
                "shasum": ""
            },
            "require": {
                "php": ">=5.0.0"
            },
            "require-dev": {
                "phpdocumentor/phpdocumentor": "*",
                "phpunit/phpunit": "*"
            },
            "type": "library",
            "autoload": {
                "classmap": [
                    "class.phpmailer.php",
                    "class.pop3.php",
                    "class.smtp.php"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "LGPL-2.1"
            ],
            "authors": [
....下略
Copier après la connexion

Il semble que ce soient les informations sur le package qui vient d'être installé.

Regardez à nouveau ce qu'il y a dans le répertoire du vendeur :

Feng-Hsu-Pingteki-MacBook-Air:2-1a fillano$ tree vendor
vendor
├── autoload.php
├── composer
│   ├── ClassLoader.php
│   ├── autoload_classmap.php
│   ├── autoload_namespaces.php
│   ├── autoload_real.php
│   └── installed.json
└── phpmailer
    └── phpmailer
        ├── LICENSE
        ├── PHPMailerAutoload.php
        ├── README.md
        ├── changelog.md
        ├── class.phpmailer.php
        ├── class.pop3.php
        ├── class.smtp.php
        ├── composer.json
        ├── docs
        │   ├── Callback_function_notes.txt
        │   ├── DomainKeys_notes.txt
        │   ├── Note_for_SMTP_debugging.txt
        │   ├── extending.html
        │   ├── faq.html
        │   ├── generatedocs.sh
        │   └── pop3_article.txt
...下略
Copier après la connexion

Il semble qu'en plus du répertoire phpmailer où phpmailer est installé, il y ait principalement des fichiers autoload.php et des répertoires composer.

Il s'avère que pour charger un package installé via composer, vous devez d'abord référencer le fichier supplier/autoload.php, puis vous pouvez utiliser phpmailer. Écrivez un programme simple pour le tester :

<?php
require &#39;vendor/autoload.php&#39;;
$phpmailer = new PHPMailer;
Copier après la connexion

Il n'y a aucune erreur après l'exécution, ce qui signifie que phpmailer peut se charger normalement... Voyons ensuite les utilisations de ces fichiers.

* composer.json

Pour les utilisateurs, ce fichier est principalement utilisé pour maintenir les dépendances. Ajoutez simplement un objet au fichier dans l'attribut "require", où le nom de l'attribut est le nom du package et la valeur est la version. Le nom du package est divisé en deux parties, la première partie est le fournisseur et la deuxième partie est le nom réel du package, séparé par "". Il existe plusieurs règles pour les versions :

  • Précisez directement le numéro de version, par exemple, 2.7.3

  • Après avoir spécifié le numéro de version principal, utilisez "*" pour spécifier le numéro de version mineure, par exemple, 2.7.* signifie que le numéro de version est supérieur ou égal à 2.7.0. Versions inférieures à 2.8.0

  • utilisez >. ;, >=, !=, <=,

  • <. 🎜>
  • Utilisez "~" avant le numéro de version, indiquant la version avant le prochain changement de numéro de version. Par exemple, ~2.7 signifie que la version est supérieure ou égale à 2.7 et inférieure à 3.0

  • Après le numéro de version, vous pouvez également ajouter différents indicateurs de stabilité, tels que 2.7.* @bêta. Les drapeaux qui peuvent être utilisés sont : dev, alpha, beta, RC, stable

Après avoir spécifié la version, exécutez composer install, et la dernière version du package sera installée selon les règles de version spécifiées.

En fait, chaque répertoire contenant un fichier composer.json est également le répertoire racine d'un package. Cependant, si vous souhaitez en faire un kit que d'autres peuvent utiliser, vous devez encore ajouter de nombreux paramètres, qui dépassent le cadre de cette discussion.

* composer.lock

Après la première installation du package, ce fichier sera généré, qui enregistre les informations du package installé. La vraie fonction de ce fichier est la suivante : s'il y a ce fichier dans le répertoire, lors de l'installation, il ne recherchera pas une version mise à jour, mais l'installera selon la version enregistrée dans ce fichier. Cette conception est importante car la nouvelle version de la suite risque d'être incompatible avec la version actuellement utilisée. Si la même version n'est pas utilisée, il est difficile d'assurer la stabilité du système. Dans le passé, lorsque vous utilisiez pear pour gérer des packages, si vous n'étiez pas prudent, des tragédies causées par les mises à niveau pouvaient survenir.

De plus, tant que ce fichier est ajouté à la gestion des versions, tous les répertoires des développeurs auront également ce fichier, donc les versions de packages utilisées par tout le monde seront également cohérentes, ce qui peut réduire l'utilisation de packages pendant le développement. . Problèmes de compatibilité du programme causés par différentes versions.

* Annuaire des fournisseurs

所有套件都会放置在这个目录,并且依照/的目录结构来组织。

* vendor/autoload.php
Copier après la connexion

只要引用这个档案,就可以载入套件中所有对外公开的类别。基本上每个套件都会定义自己的autoload规则,在安装时,composer会把这些规则加入,这样透过autoload.php就可以直接使用所有已安装的类别。

=====

从这些地方可以看到,Composer这个套件管理工具,在设计上已经做了很周密的考量,只需要简单指定要使用的套件及版本,一个指令就可以安装完毕,引用一个胆案之后就能使用,这样真的非常方便。所以目前几乎所有的程式库以及Framework,应该都逐渐在套用这个工具了。未来在开发PHP程式,恐怕最基本的工具也就是composer。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Fonctionnalités avancées de Composer : alias, scripts et résolution de conflits Fonctionnalités avancées de Composer : alias, scripts et résolution de conflits Jun 03, 2024 pm 12:37 PM

Composer fournit des fonctionnalités avancées, notamment : 1. Alias : définissez des noms pratiques pour les packages pour référence répétée ; 2. Scripts : exécutez des commandes personnalisées lors de l'installation/mise à jour de packages, utilisées pour créer des tables de base de données ou compiler des ressources ; 3. Résolution de conflits : utilisez des règles de priorité ; , les contraintes de satisfaction et les alias de package résolvent les différentes exigences de plusieurs packages pour la même version de dépendance afin d'éviter les conflits d'installation.

Développement et exploitation agiles de la conteneurisation de microservices PHP Développement et exploitation agiles de la conteneurisation de microservices PHP May 08, 2024 pm 02:21 PM

Réponse : Les microservices PHP sont déployés avec HelmCharts pour un développement agile et conteneurisés avec DockerContainer pour l'isolation et l'évolutivité. Description détaillée : utilisez HelmCharts pour déployer automatiquement des microservices PHP afin de réaliser un développement agile. Les images Docker permettent une itération rapide et un contrôle de version des microservices. Le standard DockerContainer isole les microservices et Kubernetes gère la disponibilité et l'évolutivité des conteneurs. Utilisez Prometheus et Grafana pour surveiller les performances et l'état des microservices, et créer des alarmes et des mécanismes de réparation automatiques.

Quelles sont les méthodes courantes pour convertir des tableaux en objets en PHP ? Quelles sont les méthodes courantes pour convertir des tableaux en objets en PHP ? Apr 28, 2024 pm 10:54 PM

Comment convertir un tableau PHP en objet : utilisez la classe stdClass, utilisez la fonction json_decode(), utilisez une bibliothèque tierce (telle que la classe ArrayObject, la bibliothèque Hydrator)

Contrôle de version et collaboration du code PHP Contrôle de version et collaboration du code PHP May 07, 2024 am 08:54 AM

Contrôle de version du code PHP : Il existe deux systèmes de contrôle de version (VCS) couramment utilisés dans le développement PHP : Git : VCS distribué, où les développeurs stockent localement des copies de la base de code pour faciliter la collaboration et le travail hors ligne. Subversion : VCS centralisé, la seule copie de la base de code est stockée sur un serveur central, offrant plus de contrôle. VCS aide les équipes à suivre les modifications, à collaborer et à revenir aux versions antérieures.

Le rôle de PHP CI/CD dans les projets DevOps Le rôle de PHP CI/CD dans les projets DevOps May 08, 2024 pm 09:09 PM

PHPCI/CD est une pratique clé dans les projets DevOps qui automatise les processus de création, de test et de déploiement, améliorant ainsi l'efficacité du développement et la qualité des logiciels. Un pipeline PHPCI/CD typique comprend les étapes suivantes : 1) Intégration continue : chaque fois que le code change, le code est automatiquement construit et testé. 2) Déploiement continu : accélérez la livraison en déployant automatiquement le code testé et intégré dans l'environnement de production. En mettant en œuvre le pipeline PHPCI/CD, vous pouvez augmenter l’efficacité du développement, améliorer la qualité des logiciels, réduire les délais de mise sur le marché et augmenter la fiabilité.

Technologie de visualisation de la structure des données PHP Technologie de visualisation de la structure des données PHP May 07, 2024 pm 06:06 PM

Il existe trois technologies principales pour visualiser les structures de données en PHP : Graphviz : un outil open source capable de créer des représentations graphiques telles que des graphiques, des graphiques acycliques dirigés et des arbres de décision. D3.js : bibliothèque JavaScript pour créer des visualisations interactives basées sur les données, générer du HTML et des données à partir de PHP, puis les visualiser côté client à l'aide de D3.js. ASCIIFlow : une bibliothèque pour créer une représentation textuelle de diagrammes de flux de données, adaptée à la visualisation de processus et d'algorithmes.

Comment utiliser PHP CI/CD pour itérer rapidement ? Comment utiliser PHP CI/CD pour itérer rapidement ? May 08, 2024 pm 10:15 PM

Réponse : Utilisez PHPCI/CD pour réaliser une itération rapide, y compris la configuration de pipelines CI/CD, de tests automatisés et de processus de déploiement. Configurer un pipeline CI/CD : sélectionnez un outil CI/CD, configurez le référentiel de code et définissez le pipeline de build. Tests automatisés : rédigez des tests unitaires et d'intégration et utilisez des frameworks de test pour simplifier les tests. Cas pratique : Utilisation de TravisCI : Installez TravisCI, définissez le pipeline, activez le pipeline et visualisez les résultats. Mettez en œuvre la livraison continue : sélectionnez les outils de déploiement, définissez les pipelines de déploiement et automatisez le déploiement. Avantages : améliorez l’efficacité du développement, réduisez les erreurs et raccourcissez les délais de livraison.

Comment utiliser le cache Redis dans la pagination des tableaux PHP ? Comment utiliser le cache Redis dans la pagination des tableaux PHP ? May 01, 2024 am 10:48 AM

L'utilisation du cache Redis peut considérablement optimiser les performances de la pagination du tableau PHP. Cela peut être réalisé en suivant les étapes suivantes : Installez le client Redis. Connectez-vous au serveur Redis. Créez des données de cache et stockez chaque page de données dans un hachage Redis avec la clé « page : {page_number} ». Récupérez les données du cache et évitez les opérations coûteuses sur les grandes baies.

See all articles