命令缩写
- install / i
- require / r
- update / u
- rm / remove / uninstall
- reinstall
- search - 查询一个包
- outdated - 查看哪些已经过期了
- depends / why
- 可以查看依赖包信息
- dump / dump-autoload / dumpautoload
- 重新生成 autoload.php 文件
- clear-cache / clearcache / cc
Composer relies on tools like `7z` (or `7zz`), `gzip`, `tar`, `unrar`, `unzip` and `xz`.
最好安装一个,这样拉取依赖的时候比较快
依赖包从这里找 https://packagist.org/
To initially install the defined dependencies for your project, you should run the update
command.
php composer.phar update
- update 主要做了2个事情:1.生成lock文件,2拉取对应依赖。
如果 composer.lock 已经存在,这时候你运行 composer install 安装的依赖的版本会是 composer.lock 里指定的版本,而不是composer.json 里的可以安装的最新最新的版本。这样做是为了保证一致性。
怎么把依赖更新到最新版本呢?
php composer.phar update
php composer.phar update monolog/monolog [...] # 单独更新某一个库,而不是全部更新。
php composer.phar update laravel/framework symfony/console # 一次性更新多个库
这个命令会拉取最新的依赖,并且把lock文件里头的依赖更新为最新版本。
update 和 install 区别总结
- install 不会更新 composer.lock ,他会根据 composer.lock 指定版本拉取对应依赖
- update 会拉取 composer.json 指定的依赖的最新版,并且会更新 composer.lock 文件
如何设置自动载入
{
"autoload": {
"psr-4": {"Acme\\": "src/"}
}
}
php composer.phar dump # 还要重新生成 vendor/autoload.php 文件
- 把 src 映射为 Acme 命令空间。
版本问题
{
"name": "acme/hello-world",
"require": {
"monolog/monolog": "1.0.*"
}
}
{
"version": "1.0.0"
}
- 给自己的项目设置一个名称
- 设置一个版本
composer i 命令的一个可选项
- --dev Install packages listed in
require-dev
(this is the default behavior).
composer u 命令
- 如果你想更新你的依赖包版本,那么就使用u命令。
- This will resolve all dependencies of the project and write the exact versions into
composer.lock
.
php composer.phar update vendor/package vendor/package2 ## 更新指定的几个库
composer u "google/*" ## 可以使用通配符
版本降级处理
If you want to downgrade a package to a specific version without changing your composer.json you can use --with
and provide a custom version constraint:
composer update --with vendor/package:2.0.1 # 降级版本,这个很重要
composer u --with respect/validation:2.3.7 # 这个命令运行成功了。
# respect/validation 2.3.7 可以拉取,但是2.4.0 无法拉取问题
查看项目所有依赖关系
composer show -t
composer show --tree
awurth/slim-validation v5.0.1 A wrapper around the respect/validation PHP validation library for easier error handling and display
├──php >=8.1
├──respect/validation ^2.0
│ ├──php ^8.1 || ^8.2
│ ├──respect/stringifier ^0.2.0
│ │ └──php >=7.1
│ └──symfony/polyfill-mbstring ^1.2
│ └──php >=7.2
├──symfony/options-resolver ^6.0 || ^7.0
│ ├──php >=8.2
│ └──symfony/deprecation-contracts ^2.5|^3
│ └──php >=8.1
└──symfony/property-access ^6.0 || ^7.0
composer require awurth/slim-validation:^5.0.1 # 库名和版本约束之间要有冒号,或者空格
composer why awurth/slim-validation -t
composer why respect/validation # 可以查看哪里上层的包依赖了respect/validation
# composer require vendor/package:version
composer require symfony/console:5.4.0
更新 composer 软件本身
composer self-update
lock file 输出内容
Writing lock file
Installing dependencies from lock file (including require-dev)
Nothing to install, update or remove
Generating autoload files
9 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
No security vulnerability advisories found.