使用composer注意事项
1.由于被墙的原因,建议使用中文镜像获取依赖,以https://packagist.phpcomposer.com为例,执行以下命令
composer config -g repo.packagist composer https://packagist.phpcomposer.com
2.关于composer.lock
在安装依赖后,Composer 将把安装时确切的版本号列表写入 composer.lock 文件。这将锁定改项目的特定版本。
这是非常重要的,因为 install 命令将会检查锁文件是否存在,如果存在,它将下载指定的版本(忽略 composer.json 文件中的定义)。
如果不存在 composer.lock 文件,Composer 将读取 composer.json 并创建锁文件。
有了composer.lock之后,如果你的依赖更新了新的版本,你将不会获得任何更新。此时要更新你的依赖版本请使用 update 命令。这将获取最新匹配的版本(根据你的 composer.json 文件)并将新版本更新进锁文件。
但是强烈不建议直接 composer update,因为这相当于删除了composer.lock,然后执行composer install,这样可能会导致项目中的依赖的版本发生变化
建议做法:使用白名单,声明需要更新的依赖
composer update monolog/monolog [...]
3.关于composer.json的autoload字段
"autoload": {
"classmap": [
"database",
"app/Http/Plugins"
],
"psr-4": {
"App\\": "app/" (其中App\\就是根命名空间,app/指的就是根命名空间所在目录)
},
"files": [
"app/Helpers/functions.php",
"app/Helpers/MyException.php"
]
},
a.classmap 扫描指定目录,如下面的目录database和app/Http/Plugins
b.psr-4 指定使用某命名空间的类所在的目录,如使用App这个命名空间的类,都在app这个目录里
c.files 每次请求时都要加载的文件,直接指定文件路径即可
4如何在修改composer的autolaod字段后更新autoload文件
composer dumpautoload 或者 composer install
5.删除一个依赖
composer remove vendor/package vendor/package2