composer 是基于项目进行管理的,进行依赖安装的时候。要设置好一个配置文件。 composer.json 通过这个配置文件compsoser 就知道需要安装什么。
比如需要安装一个日志工具
# Author: www.phpjiaocheng.com
cat composer.json
{
"require" : {
"monolog/monolog": "1.*"
}
看到的安装信息
composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Package operations: 2 installs, 0 updates, 0 removals
- Installing psr/log (1.1.3): Downloading (100%)
- Installing monolog/monolog (1.25.5): Downloading (100%)
monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB)
monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server)
monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required))
monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server)
monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server)
monolog/monolog suggests installing mongodb/mongodb (Allow sending log messages to a MongoDB server via PHP Driver)
monolog/monolog suggests installing php-amqplib/php-amqplib (Allow sending log messages to an AMQP server using php-amqplib)
monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome)
monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar)
monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server)
monolog/monolog suggests installing sentry/sentry (Allow sending log messages to a Sentry server)
Generating autoload files
1 package you are using is looking for funding.
Use the `composer fund` command to find out more!
如果想查看详细的安装信息,可以通过 composer install -vvv
安装的过程都发生了什么
首先查看一个当前的目录多了什么文件
[phpjiaocheng.com@localhost test]$ tree -L 1
.
├── composer.json
├── composer.lock
└── vendor
多了一个文件 vender , 一个文件 composer.lock 。 其中vender是用来存放下载的包和依赖的。 通过composer下载的文件都存储在里面。
composer.lock 则是锁定文件。就是里面有一些确定的信息。 具体可以查看 composer.lock的作用是什么
另外下的文件还会进行缓存。可能的目录是 ~/.cache/composer/files/