composer 是一个依赖管理工具,类似于 Node.js 的 npm ,用这个工具可以方便管理 PHP 项目的依赖并提升安全性。
安装
获取二进制
按照 composer
的官网的安装教程,先获取可执行文件。
- 海外使用
# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
# php composer-setup.php
# php -r "unlink('composer-setup.php');"
小贴士:四个命令分别是下载工具、并检测当前的系统环境(系统、PHP版本等),最后安装。
- 大陆使用
可以使用国内的中国官网进行安装。
# php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
# php composer-setup.php
# php -r "unlink('composer-setup.php');"
全局安装
$ sudo mv composer.phar /usr/local/bin/composer
使用
升级
# composer selfupdate
版本
# composer --version
清空缓存
# composer clear
补充
大陆提速
这个工具默认使用的安装源都是海外服务器和 GitHub,由于众所周知的原因,速度慢甚至无法连接。
推荐使用国内源进行替换
关于全量与非全量镜像
composer 安装扩展包的时候,会发起两种请求:
- JSON 请求 —— 扩展包 META (元信息),包括源码包的下载地址
- ZIP 请求 —— 扩展包 PACKAGE (源码压缩包)
小贴士:全量镜像指的是以上两种请求都使用国内服务器加速。而非全量服务器一般只缓存 JSON 数据。
建议根据服务器种类进行选择,本文以阿里云为例,替换安装源。
# composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
忽略文件
使用 composer 安装依赖时会产生两个文件 composer.json
和 composer.lock
。
小贴士:json
文件记录的是插件的列表和版本要求,lock
文件记录的是当前环境已安装的版本。
根据其官方的说明,建议将 composer.lock
文件上传到版本库中。
Committing this file to VC is important because it will cause anyone who sets up the project to use the exact same versions of the dependencies that you are using. Your CI server, production machines, other developers in your team, everything and everyone runs on the same dependencies, which mitigates the potential for bugs affecting only some parts of the deployments. Even if you develop alone, in six months when reinstalling the project you can feel confident the dependencies installed are still working even if your dependencies released many new versions since then. (See note below about using the update command.)
例如 Laravel 的官方忽略文件示例。
/node_modules
/public/hot
/public/storage
/storage/*.key
/vendor
.env
.env.backup
.phpunit.result.cache
Homestead.json
Homestead.yaml
npm-debug.log
yarn-error.log
其他忽略文件请根据 IDE 和系统进行区分
使用 PhpStorm 需要加入
/.idea
使用 macOS 需要加入
*/.DS_Store
使用规范
开发人员使用 require
进行增加依赖,运维人员仅需要使用 install
进行安装依赖,只建议开发人员使用 update
对依赖进行更新。
# composer require endroid/qr-code 1.9.3
增加依赖并指定版本号
# composer install
安装当前配置文件中的全部版本
附录
参考链接
本文由 柒 创作,采用 知识共享署名4.0
国际许可协议进行许可。
转载本站文章前请注明出处,文章作者保留所有权限。
最后编辑时间: 2020-06-14 14:24 PM