使用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

 

 

posted @ 2017-12-13 18:04  toDoYourBest  阅读(...)  评论(... 编辑 收藏