常用 php composer 库汇总
PHP_CodeSniffer是两个PHP脚本的集合;主要的phpcs脚本,用于标记PHP、JavaScript和CSS文件,以检测违反已定义的编码标准,以及第二个phpcbf脚本,用于自动纠正违反编码标准的行为。PHP_CodeSniffer是一个重要的开发工具,它可以确保代码保持干净和一致
1 2 3 4 5 6 7
| composer global require "squizlabs/php_codesniffer=*"
echo "export PATH=$PATH:$HOME/.composer/vendor/bin" >> ~/.zshrc phpcs --version PHP_CodeSniffer version 3.6.0 (stable) by Squiz (http://www.squiz.net) phpcbf --verion PHP_CodeSniffer version 3.6.0 (stable) by Squiz (http://www.squiz.net)
|
这是一组用于检查PHP跨版本兼容性的PHP CodeSniffer嗅探器。它将允许您分析您的代码与更高和更低版本的PHP的兼容性。
1 2 3 4 5 6 7
| composer global require "phpcompatibility/php-compatibility=*"
phpcs --config-set installed_paths ~/.composer/vendor/phpcompatibility/php-compatibility
phpcs --standard=PHPCompatibility --runtime-set testVersion 7.4 --extensions=php ./
|
1
| composer require godruoyi/php-snowflake
|
1
| composer require hashids/hashids
|
1
| composer require firebase/php-jwt
|
1
| composer require guzzlehttp/guzzle
|
1
| composer require phpunit/phpunit
|
1 2 3 4
| composer require "overtrue/wechat:^4.2"
composer require "overtrue/wechat:^5.0"
|
PhpSpreadsheet
是 PHPExcel 的新版本,要求 PHP 版本 >= 7.3。
1 2
| composer require --prefer-dist phpoffice/phpspreadsheet composer dumpautoload -o
|
Composer 命令行工具使用
Composer 包安装
1 2 3 4
| composer install --prefer-dist
save_handler
|
Composer script
composer script 定义
1 2 3 4 5 6 7 8
| "scripts": { "test": [ "php -r 'echo \"Hello World!\" . PHP_EOL;// echo Hello World!'", ] }, "scripts-descriptions": { "test": "Hello World!", }
|
查看 script 列表
1 2 3 4 5 6
| $ composer run -l scripts: test Hello World! $ composer run-script -l scripts: test Hello World!
|
执行 script
Composer 2.0
升级到 2.0
1
| composer self-update --2
|
降级到 1.0
1 2 3
| composer self-update --rollback
composer self-update --1
|
参考
安装包
常用全局dev包
全局安装路径可通过 composer config -l
命令查看。
Registry 管理
1
| $ composer global require slince/composer-registry-manager ^2.0
|
用法:
1 2 3
| $ composer repo:ls
$ composer repo:use aliyun
|
phpunit
1
| $ composer global require --dev phpunit/phpunit
|
1 2 3 4
| $ wget -c https://phar.phpunit.de/phpunit-8.5.15.phar -O /usr/local/bin/phpunit $ chmod u+x /usr/local/bin/phpunit $ phpunit --version PHPUnit 8.5.15 by Sebastian Bergmann and contributors.
|
常用包
phpunit
1 2 3 4 5 6
| composer require --prefer-dist --dev "phpunit/phpunit" composer dumpautoload -o -a composer exec phpunit
composer install ./vendor/bin/phpunit
|
移除包
1
| composer remove phpunit/phpunit
|
常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| composer config repo.packagist composer https://mirrors.aliyun.com/composer
composer config -g --unset repo.packagist
composer config -g -l
composer create-project topthink/think
composer require laravel/framework
composer create-project composer/satis:dev-main --ignore-platform-reqs
php bin/satis build satis.json public -v
|
安装 monolog 日志库范例
在项目目录中,执行 composer require monolog/monolog
命令。
会自动创建 composer.json
文件。
新建 composer.json
文件
- 登记需要安装的依赖。
- 执行
composer install
安装命令。
若没有任何依赖,直接运行 composer install
会安装 Composer
的自动加载文件。
composer create-project
命令解析
从功能上来说等价于 git clone
和 composer install
两个命令。
VCS(Version Control System 版本控制系统)版本状态标识
名称 |
实例 |
描述 |
空版本号 |
monolog/monolog |
默认使用最新稳定版本 |
确切版本号 |
monolog/monolog:”1.0.2” |
指定包的确切版本 |
范围 > < != || 或者 - 连接符 |
monolog/monolog:”>=1.0”,monolog/monolog:”=2.0” |
使用比较操作符可以指定有效的版本范围。有效的操作符:>、>=、<、<=、!=。你可以定义多个范围,用逗号隔开,这将被视为一个逻辑 AND 处理。管道符号 || 将作为逻辑 OR 处理。AND 的优先级高于 OR。 优先使用最高版本。 |
通配符 |
1.0.* 或 * |
使用通配符 * 来指定一种模式。
1.0.* 与 >=1.0,<1. 是等效的。 |
赋值运算符(最低版本) |
~1.2.3 |
对于遵循语义化版本号的项目非常有用。
~1.2.3 与 >=1.2.3,<1.3 是等效的。
~1.2 与 >=1.2.0,<2.0.0 是等效的 |
脱字号版本(最低版本) carret |
^1.2.3 |
比 ~ 范围大一级。
^1.2.3 与 >=1.2.3,<2.0.0 是等效的。
^1.2 与 >=1.2.0,<2.0.0 是等效的 |
~
与 ^
修饰符区别。
版本变化
- alpha
- 内测版
- bug多
- 不稳定
- 内部版本
- 不断添加新功能
- beta1、beta2
- 公测版
- 不稳定(相比alpha稳定一些)
- bug相对多
- 不断添加新功能
- RC
- 候选版
- 经过多个 beta 版本逐渐稳定
- 基本不添加新功能
- 修复完 bug 即可进入正式发布版
- GA、Release、Stable、Final 等
其他
1 2 3 4 5 6 7 8 9
| composer create-project codezm/php-skeleton:dev-master yaf-test --repository-url http://packagist.codezm.com:8081 --no-secure-http
composer create-project codezm/php-skeleton yaf_tests --repository="{\"url\": \"https://gitee.com/codezm/php-skeleton.git\", \"type\": \"vcs\"}" --stability=dev --remove-vcs
composer create-project codezm/php-skeleton --repository-url=https://gitee.com/codezm/php-skeleton.git yaf-tests
|
原则
- 所有带有
Yaf
前缀的,均在 skeleton
包中继承。
删除 composer repo 缓存代码
在新服务器克隆私有仓库代码时,会提示输入账号信息,composer 会提示是否 store credentials。若存储后删除了 ~/.config/composer/auth.json
文件,则需要删除 composer repo 缓存代码,否则将会导致无法更新最新包。
1 2
| $ cd /root/.cache/composer/repo/ $ rm -rf https---gitee.com-codezm*
|
安装某扩展而不更新其他依赖
1 2 3 4 5 6
| composer require iflytekop/xfyun-sdk --no-update composer update iflytekop/xfyun-sdk composer dump-autoload -o
composer update iflytekop/xfyun-sdk:2.0.0
|
只添加扩展到 composer.json(不更新composer.lock) 而不安装此扩展
1
| composer require iflytekop/xfyun-sdk --no-update
|
参考