1 回答
TA贡献1825条经验 获得超6个赞
APP_ENV 用途:
决定在配置目录中加载哪些配置文件。
这是在您的Kernel班级中完成的。
默认情况下,在configureContainer()提供的 方法中,您会找到这一行,其中$this->environment代表 的值APP_ENV。
$loader->load( $confDir . '/{packages}/' . $this->environment . '/**/*' . self::CONFIG_EXTS, 'glob' );
显然,您可以根据自己的需要自定义和/或更改该行为。
决定.env加载哪些文件。
在该文件中,config/bootstrap.php您将看到基本的环境初始化。此脚本使用DotEnv组件读取.env文件
(new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
而这个组件将使用的值APP_ENV来搜索这些。如果你看一看,DotEnv::loadEnv()你会看到这个:
if (file_exists($p = "$path.$env")) {
$this->load($p);
}
if (file_exists($p = "$path.$env.local")) {
$this->load($p);
}
这意味着对于给定的APP_ENV集合,dev它会尝试先加载.env.dev,然后再加载.env.dev.local.
APP_DEBUG如果未明确设置,则设置 的值。
如果不设置APP_DEBUG,将bootstrap.php根据 的值进行设置APP_ENV。这可以在这条线上清楚地看到:
$_SERVER['APP_DEBUG'] = $_SERVER['APP_DEBUG'] ?? $_ENV['APP_DEBUG'] ?? 'prod' !== $_SERVER['APP_ENV'];
(如果$_SERVER['APP_DEBUG']可用使用,如果不尝试使用$_ENV['APP_DEBUG'],如果未设置将它设置true,如果APP_ENV没有prod)。
APP_DEBUG 用途:
此常量用于应用程序(public/index.php或bin/console)的入口点脚本,您将在其中看到以下两种用途:
全局初始化错误报告和错误处理。这是使用Debug::enable()以下方法完成的:
if ( $_SERVER['APP_DEBUG'] ) {
umask( 0000 );
Debug::enable();
}
该方法Debug::enable()简单易懂:它更改error_reporting、设置displays_errors和注册错误和异常处理程序。
为Kernel应用程序初始化。
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
这将设置%kernel.debug%( Kernel::isDebug()) 参数。许多包可以使用这个值来决定当系统被认为处于调试模式时要做什么。没有强制行为,每个模块都可以以最适合模块用例的方式使用信息。
- 1 回答
- 0 关注
- 200 浏览
添加回答
举报