Laravel 项目开发规范 Composer 使用须知

2023-02-16 17:11 更新

说明

我们都知道 Laravel 扩展包的注册会对应用造成消耗。有一些扩展包是开发环境中专用,生产环境中并不会使用到,为了避免无用的负载, 必须严格控制其安装和加载。

安装

安装开发专用扩展包时 必须 使用 --dev 参数,如:

composer require laracasts/generators --dev

这样扩展包会被作为 require-dev 依赖标记在 composer.json 文件中。

生产环境

Prodction 和 Staging 环境,必须 使用以下命令来安装 Composer 依赖:

composer install --no-dev

所有 composer.json 里 require-dev 选项配置的依赖包都不会被安装。

显式加载扩展包

开发业务功能,需要用到某个扩展包,必须使用 composer require 将其加载至 composer.json 的 require 选项里。

以作者的一个经历来举例:

某项目中,用到了 Laravel Admin 扩展包,现在要开发用户头像上传功能,需要截图,最好的选择是 ​intervention/image​ 包,在 IDE 中的代码提示中,发现可以使用 Image 类,就直接写代码,而不是检查 composer.json 文件。等项目上线后,就会发现运行错误,Image 类找不到。

虽然 laravel-admin 包确实有加载 image 包,见 源码

    "require-dev": {
        "laravel/laravel": ">=5.5",
        "fzaninotto/faker": "~1.4",
        "intervention/image": "~2.3",
        "laravel/browser-kit-testing": "^6.0"
    },

但是加载的位置不对,使用的是 ​require-dev​,也就是开发环境中加载,如果线上执行 ​composer install --no-dev​ 的话,​intervention/image​ 包将不会被安装。

最好的实践就是,养成习惯,在使用第三方扩展包时,检查下 composer.json 文件,如未显示在 require 选项中,即使用 composer require xxx/xxx 命令进行加载。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号