recherche

什么是Composer

Composer是PHP的一个依赖管理工具。你可以在你的项目里声明你依赖的库,然后Composer会帮你解决以下问题:找到这些库以及这些库所依赖的库可以安装的版本,然后进行安装。所以Composer是一个依赖管理工具,而不是一个包管理工具(类似Yum或者Apt),因为它是基于每个项目去管理这些包,把这些包安装到项目里的某个目录。

Composer的安装

Composer要求 PHP 5.3.2+版本以及一些PHP的配置,如果有不兼容的情况发生,在安装过程中会有提示。有两种方式安装Composer,一是本地安装,而是全局安装。

本地安装

本地安装会把Composer安装到当前的目录下。运行以下命令进行安装:

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"$ php -r "if (hash_file('SHA384', 'composer-setup.php') === '070854512ef404f16bac87071a6db9fd9721da1684cd4589b1196c3faf71b9a2682e2311b36a5079825e155ac7ce150d') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"$ php composer-setup.php$ php -r "unlink('composer-setup.php');"

一共4条命令,它们分别执行以下的操作:

  1. 下载安装文件到当前目录。

  2. 检验安装文件的SHA-384散列。

  3. 运行安装文件。

  4. 删除安装文件。

然后我们就可以运行执行以下命令来运行Compoer了:

$ php composer.phar

需要注意的是,第二步检查文件的散列,每一个版本安装文件的散列值都会不同的,所以每次安装最好都到 下载页面去获取安装代码。或者如果你觉得没有检查安装文件的必要的话,也可以跳过这条命令去执行下面的命令。当然从安全角度考虑,不建议这么做。

全局安装

所谓全局安装,其实就是把Composer安装到 PATH变量里的某个目录中,这样你就可以从任何地方去访问Composer了。个人也建议这么做。我们只需要把本地安装的composer执行文件移动到全局目录下即可:

$ mv composer.phar /usr/local/bin/composer

这样你就可以在任何地方直接运行 composer命令了。后续如没有特别说明,都是在全局安装的情况下执行命令。

安装选项

Composer安装时支持3个选项。

--install-dir

通过 --install-dir选项可以修改Composer的安装路径,例如如果我们想把Composer安装在 bin目录下:

$ php composer-setup.php --install-dir=bin

--filename

通过 --filename选项,我们可以修改Composer执行文件的名称(默认为composer.phar)。例如:

$ php composer-setup.php --filename=composer

--version

如果想安装指定版本的Composer,可以使用 --version选项:

$ php composer-setup.php --version=1.0.0-alpha8

手动下载

除了上面的安装方式外,还可以直接下载执行文件,请到 下载页面进行下载。

Composer的更新

更新Composer很简单,只需要执行以下命令:

$ composer selfupdateUpdating to version 1.1.2 (stable channel).    Downloading: 100%         Use composer self-update --rollback to return to version 06c45623d76457562cecbcf2245f904aa0f63a87# 或者(两者是等效的)$ composer self-update

如果想进行版本的回滚,可以使用以下命令:

$ composer selfupdate --rollbackRolling back to version 2016-05-26_16-11-16-06c4562.

Composer的基本使用

composer.json文件

安装完Composer后,想要在项目里开始使用它,你唯一需要做的就是创建一个 composer.json文件。这个文件描述了你这个项目所依赖的包以及一些其他的元信息。

require键

通过require这个配置项,我们可以指定项目的依赖。假设我们项目需要用到 monolog/monolog这个日志库,那么我们可以这样配置 composer.json文件:

{    "require": {        "monolog/monolog": "1.0.*"    }}

require的值是一个对象,对象里的每一个键对应一个依赖,通过键名为包的名称,键值为包的版本。

包的名称

包名由vendor名和项目名组成,这样可以保证包名的唯一性。项目名可以重复,但是vendor名每个人都不一样。以 monolog/monolog为例,vendor名和项目名都是 monolog。

包的版本

在上面的例子中,我们要求 monolog/monolog的版本为 1.0.*,表示任何的1.0的开发分支版本都满足要求。版本的指定方式有很多种,在后面的文章中会进行详细的解说。

安装依赖

创建完 composer.json文件并配置好 require后,我们就可以安装依赖了,只需要运行以下的命令:

$ composer installLoading composer repositories with package informationUpdating dependencies (including require-dev)  - Installing monolog/monolog (1.0.2)    Downloading: 100%         Writing lock fileGenerating autoload files

Composer会根据上面配置的版本约定下载最新版本的 monolog/monolog到默认目录 vendor下。

composer.lock文件

运行完上面的 install命令后,你会发现除了 vendor目录,还会多了一个 composer.lock文件。这个文件保存了项目已经安装的每个包的具体版本。在运行 install命令的时候,如果存在这个文件,则Composer会根据这个文件下载对应版本的包。这样的好处是可以保证各个环境的依赖的版本一致,否则如果没有这个文件,每个环境在运行 install时可能下载到的版本就不一致了。所以建议把 composer.lock文件也放到版本控制里。

更新依赖

要更新依赖,只需要运行 update命令:

# 更新所有的依赖$ composer update# 更新某个依赖$ composer update monolog/monolog

自动加载

下载完依赖后,我们可以开始使用依赖所提供的库了。Composer会为下载的库创建自动加载文件 vendor/autoload.php,我们只需要包含这个文件就能轻松的调用各个库的功能。以 monolog/monolog为例:

$log = new Monolog\Logger('name');$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));$log->addWarning('Foo');

我们不用关心库文件的加载问题,Composer的 autoload.php文件已经帮我们处理好了各个库的自动加载。

Packagist 镜像

至此,我们安装好了Composer,也知道了它的基本用法,基本可以快乐的玩耍了。但是众所周知,由于某些原因,github和packagist在国内有时会访问不了,或者速度很慢,这就会导致使用Composer时的各种不爽。还好我们国内有个 镜像可以解决这个问题,只需要把仓库的路径修改为镜像的路径即可。

有两种方式,一是修改Composer的全局配置(推荐的方式):

$ composer config -g repo.packagist composer https://packagist.phpcomposer.com

这个命令会修改Composer的全局配置文件 config.json。二是修改单个项目的配置:

$ composer config repo.packagist composer https://packagist.phpcomposer.com

这个命令会修改项目下的 composer.json文件,添加如下的配置信息:

"repositories": {    "packagist": {        "type": "composer",        "url": "https://packagist.phpcomposer.com"    }}

当然你也可以直接手动修改 composer.json文件,添加上面那段配置信息。

详情请访问: http://pkg.phpcomposer.com/。

参考

  • https://getcomposer.org/

  • http://pkg.phpcomposer.com/

Déclaration
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
Comment fonctionne la résistance au type PHP, y compris les types scalaires, les types de retour, les types d'union et les types nullables?Comment fonctionne la résistance au type PHP, y compris les types scalaires, les types de retour, les types d'union et les types nullables?Apr 17, 2025 am 12:25 AM

Le type PHP invite à améliorer la qualité et la lisibilité du code. 1) Conseils de type scalaire: Depuis PHP7.0, les types de données de base sont autorisés à être spécifiés dans les paramètres de fonction, tels que INT, Float, etc. 2) Invite de type de retour: Assurez la cohérence du type de valeur de retour de fonction. 3) Invite de type d'union: Depuis PHP8.0, plusieurs types peuvent être spécifiés dans les paramètres de fonction ou les valeurs de retour. 4) Invite de type nullable: permet d'inclure des valeurs nulles et de gérer les fonctions qui peuvent renvoyer les valeurs nulles.

Comment PHP gère le clonage des objets (mot-clé de clone) et la méthode de magie __clone?Comment PHP gère le clonage des objets (mot-clé de clone) et la méthode de magie __clone?Apr 17, 2025 am 12:24 AM

Dans PHP, utilisez le mot-clé Clone pour créer une copie de l'objet et personnalisez le comportement de clonage via la méthode de magie du clone \ _ \ _. 1. Utilisez le mot-clé Clone pour faire une copie peu profonde, en clonant les propriétés de l'objet mais pas aux propriétés de l'objet. 2. La méthode du clone \ _ \ _ peut copier profondément les objets imbriqués pour éviter les problèmes de copie superficiels. 3. Faites attention pour éviter les références circulaires et les problèmes de performance dans le clonage et optimiser les opérations de clonage pour améliorer l'efficacité.

PHP vs Python: cas d'utilisation et applicationsPHP vs Python: cas d'utilisation et applicationsApr 17, 2025 am 12:23 AM

PHP convient aux systèmes de développement Web et de gestion de contenu, et Python convient aux scripts de science des données, d'apprentissage automatique et d'automatisation. 1.Php fonctionne bien dans la création de sites Web et d'applications rapides et évolutifs et est couramment utilisé dans CMS tel que WordPress. 2. Python a permis de manière remarquable dans les domaines de la science des données et de l'apprentissage automatique, avec des bibliothèques riches telles que Numpy et Tensorflow.

Décrivez différents en-têtes de mise en cache HTTP (par exemple, contrôle du cache, ETAG, dernier modifié).Décrivez différents en-têtes de mise en cache HTTP (par exemple, contrôle du cache, ETAG, dernier modifié).Apr 17, 2025 am 12:22 AM

Les acteurs clés des en-têtes de cache HTTP incluent le contrôle du cache, l'ETAG et la dernière modification. 1.CACHE-Control est utilisé pour contrôler les politiques de mise en cache. Exemple: Cache-Control: Max-Age = 3600, public. 2. Etag vérifie les changements de ressources par le biais d'identifiants uniques, exemple: ETAG: "686897696A7C876B7E". 3.Last-modifié indique le dernier temps de modification de la ressource, exemple: dernier modifié: mer, 21oct201507: 28: 00gmt.

Expliquez le hachage de mot de passe sécurisé dans PHP (par exemple, Password_Hash, Password_verify). Pourquoi ne pas utiliser MD5 ou SHA1?Expliquez le hachage de mot de passe sécurisé dans PHP (par exemple, Password_Hash, Password_verify). Pourquoi ne pas utiliser MD5 ou SHA1?Apr 17, 2025 am 12:06 AM

Dans PHP, Password_Hash et Password_verify Les fonctions doivent être utilisées pour implémenter le hachage de mot de passe sécurisé, et MD5 ou SHA1 ne doit pas être utilisé. 1) Password_hash génère un hachage contenant des valeurs de sel pour améliorer la sécurité. 2) Password_verify Vérifiez le mot de passe et assurez-vous la sécurité en comparant les valeurs de hachage. 3) MD5 et SHA1 sont vulnérables et manquent de valeurs de sel, et ne conviennent pas à la sécurité de mot de passe moderne.

PHP: une introduction au langage des scripts côté serveurPHP: une introduction au langage des scripts côté serveurApr 16, 2025 am 12:18 AM

PHP est un langage de script côté serveur utilisé pour le développement Web dynamique et les applications côté serveur. 1.Php est un langage interprété qui ne nécessite pas de compilation et convient au développement rapide. 2. Le code PHP est intégré à HTML, ce qui facilite le développement de pages Web. 3. PHP traite la logique côté serveur, génère une sortie HTML et prend en charge l'interaction utilisateur et le traitement des données. 4. PHP peut interagir avec la base de données, traiter la soumission du formulaire et exécuter les tâches côté serveur.

PHP et le Web: explorer son impact à long termePHP et le Web: explorer son impact à long termeApr 16, 2025 am 12:17 AM

PHP a façonné le réseau au cours des dernières décennies et continuera de jouer un rôle important dans le développement Web. 1) PHP est originaire de 1994 et est devenu le premier choix pour les développeurs en raison de sa facilité d'utilisation et de son intégration transparente avec MySQL. 2) Ses fonctions principales incluent la génération de contenu dynamique et l'intégration à la base de données, ce qui permet au site Web d'être mis à jour en temps réel et affiché de manière personnalisée. 3) La large application et l'écosystème de PHP ont motivé son impact à long terme, mais il fait également face à des mises à jour de version et à des défis de sécurité. 4) Les améliorations des performances ces dernières années, telles que la sortie de PHP7, lui permettent de rivaliser avec les langues modernes. 5) À l'avenir, PHP doit faire face à de nouveaux défis tels que la conteneurisation et les microservices, mais sa flexibilité et sa communauté active le rendent adaptable.

Pourquoi utiliser PHP? Avantages et avantages expliquésPourquoi utiliser PHP? Avantages et avantages expliquésApr 16, 2025 am 12:16 AM

Les principaux avantages du PHP comprennent la facilité d'apprentissage, un soutien solide sur le développement Web, les bibliothèques et les cadres riches, les performances élevées et l'évolutivité, la compatibilité multiplateforme et la rentabilité. 1) Facile à apprendre et à utiliser, adapté aux débutants; 2) une bonne intégration avec les serveurs Web et prend en charge plusieurs bases de données; 3) ont des cadres puissants tels que Laravel; 4) Des performances élevées peuvent être obtenues grâce à l'optimisation; 5) prendre en charge plusieurs systèmes d'exploitation; 6) Open source pour réduire les coûts de développement.

See all articles

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)
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

MinGW - GNU minimaliste pour Windows

MinGW - GNU minimaliste pour Windows

Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP