首页 > 其他分享 >laravel composer require require-dev和APP_ENV的使用场景

laravel composer require require-dev和APP_ENV的使用场景

时间:2022-11-23 09:02:29浏览次数:65  
标签:laravel env require dev ENV composer APP fastcgi

2022年11月22日12:25:42

composer require require-dev的使用场景

官方文档:
https://getcomposer.org/doc/04-schema.md#require

require
此包所需的包映射。除非可以满足这些要求,否则不会安装该软件包。

require-dev (root-only)
开发此包或运行测试等所需的包映射。默认安装根包的开发要求。安装或更新都支持 --no-dev 选项,以防止安装开发依赖项

举个例子:
我需要增加一个 composer require barryvdh/laravel-ide-helper,但是我希望在开发环境的时候需要安装,但是线上我就不需要安装这个插件

1,composer require --dev 表示将所要安装的依赖名放在"require-dev"下
2,composer install no-dev 表示只安装"require"中的依赖

实际操作:
composer require --dev barryvdh/laravel-ide-helper
如果代码上传到线上,执行
composer install no-dev

.env 配置文件APP_ENV的使用场景

中文文档:https://learnku.com/docs/laravel/8.x/configuration/9355

环境配置

对于应用程序运行的环境来说,不同的环境有不同的配置通常是很有用的。 例如,你可能希望在本地使用的缓存驱动不同于生产服务器所使用的缓存驱动。

Laravel 利用 Vance Lucas 的 PHP 库 DotEnv 使得此项功能的实现变得非常简单。在新安装好的 Laravel 应用程序中,其根目录会包含一个 .env.example 文件。如果是通过 Composer 安装的 Laravel,该文件会自动更名为 .env。否则,需要你手动更改一下文件名。

你的 .env 文件不应该提交到应用程序的源代码控制系统中,因为每个使用你的应用程序的开发人员 / 服务器可能需要有一个不同的环境配置。此外,在入侵者获得你的源代码控制仓库的访问权的情况下,这会成为一个安全隐患,因为任何敏感的凭据都被暴露了。

如果是团队开发,则可能希望应用程序中仍包含 .env.example 文件。因为通过在示例配置文件中放置占位值,团队中的其他开发人员可以清楚地看到哪些环境变量是运行应用程序所必需的。你也可以创建一个 .env.testing 文件,当运行 PHPUnit 测试或以 --env=testing 为选项执行 Artisan 命令时,该文件将覆盖 .env 文件中的值。

技巧:.env 文件中的所有变量都可被外部环境变量(比如服务器级或系统级环境变量)所覆盖。

这个需要配合nginx的配置在使用,刚开始我以为和java的模式一样,作为一个启动参数,但是好像不太一样

    location ~ \.php(.*)$ {
        fastcgi_pass   127.0.0.1:9001;
        fastcgi_index  index.php;
        fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_param  PATH_INFO  $fastcgi_path_info;
        fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
        fastcgi_param APP_ENV local;#三个选一个
	fastcgi_param APP_ENV dev;
	fastcgi_param APP_ENV prod;
        include        fastcgi_params;
    }

对应的配置文件是:
local -> .env
dev -> .env.dev
prod -> .env.prod

注意:
1,默认没有 fastcgi_param APP_ENV local;的,如果设置了非local的值,就是无法开启 APP_DEBUG=true的,所以在本地开发环境的时候,就不要写这个
2,fastcgi_param APP_ENV local;的配置是优先于APP_ENV=local,所以在使用的时候想清楚,如果线上需要debug就可能无法使用APP_DEBUG=true此配置来读取对应的配置文件

标签:laravel,env,require,dev,ENV,composer,APP,fastcgi
From: https://www.cnblogs.com/zx-admin/p/16914759.html

相关文章