当前位置: 首页 > 后端技术 > PHP

Laravel5.4不同环境下env文件设置

时间:2023-03-29 20:51:26 PHP

Laravel5.4现在支持不同环境下的env文件设置(好像是L5.4的最新支持,记不太清了,可能L5.2-5.3已经支持了),可用于不同环境(development,staging,production)设置env文件为:development:.env.developmentstaging:.env.stagingproduction:.env.production根据不同的环境服务器设置系统变量(可以查看APP_ENV环境变量是否OK根据phpinfo()):development:APP_ENV=developmentstaging:APP_ENV=stagingproduction:APP_ENV=production这样在项目的根目录下就会有对应不同环境的.env.xxx文件,放入version控制。本地环境对应的.env不需要放入版本控制。原理可以看laravel的源码:namespaceIlluminate\Foundation\Bootstrap;useDotenv\Dotenv;useDotenv\Exception\InvalidPathException;useSymfony\Component\Console\Input\ArgvInput;useIlluminate\Contracts\Foundation\Application;classLoadEnvironmentVariables{/***引导给定的应用程序。**@param\Illuminate\Contracts\Foundation\Application$app*@returnvoid*/publicfunctionbootstrap(Application$app){if($app->configurationIsCached()){return;}$this->checkForSpecificEnvironmentFile($app);尝试{(newDotenv($app->environmentPath(),$app->environmentFile()))->load();}catch(InvalidPathException$e){//}}/***检测是否存在与APP_ENV匹配的自定义环境文件。**@param\Illuminate\Contracts\Foundation\Application$app*@returnvoid*/protectedfunctioncheckForSpecificEnvironmentFile($app){if(php_sapi_name()=='cli'&&with($input=newArgvInput)->hasParameterOption复制代码('--env')){$this->setEnvironmentFilePath($app,$app->environmentFile().'.'.$input->getParameterOption('--env'));}if(!env('APP_ENV')){返回;}$this->setEnvironmentFilePath($app,$app->environmentFile().'.'.env('APP_ENV'));}RightCapital招聘聘LaravelDevOps