Yii - Entry 入口脚本
入口脚本负责启动请求处理周期。它们只是用户可访问的 PHP 脚本。
下图显示了应用程序的结构 −
Web 应用程序(以及控制台应用程序)具有单个入口脚本。最终用户向入口脚本发出请求。然后入口脚本实例化应用程序实例并将请求转发给它们。
控制台应用程序的入口脚本通常存储在项目基本路径中,并命名为 yii.php。Web 应用程序的入口脚本必须存储在 Web 可访问的目录下。它通常被称为 index.php。
入口脚本执行以下操作 −
- 定义常量。
- 注册 Composer 自动加载器。
- 包含 Yii 文件。
- 加载配置。
- 创建并配置应用程序实例。
- 处理传入请求。
以下是 基本应用程序 模板的入口脚本 −
<?php //定义全局常量 defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_ENV') or define('YII_ENV', 'dev'); //注册 Composer 自动加载器 require(__DIR__ . '/../vendor/autoload.php'); //包含 yii 文件 require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php'); //加载应用程序配置 $config = require(__DIR__ . '/../config/web.php'); //创建、配置和处理请求 (new yii\web\Application($config))->run(); ?>
以下是 console 应用程序的入口脚本 −
#!/usr/bin/env php <?php /** * Yii console bootstrap file. * @link http://www.yiiframework.com/ * @copyright Copyright (c) 2008 Yii Software LLC * @license http://www.yiiframework.com/license/ */ //定义全局常量 defined('YII_DEBUG') or define('YII_DEBUG', true); //注册 Composer 自动加载器 require(__DIR__ . '/vendor/autoload.php'); require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php'); //加载配置 $config = require(__DIR__ . '/config/console.php'); //将配置应用于应用程序实例 $application = new yii\console\Application($config); //处理请求 $exitCode = $application->run(); exit($exitCode); ?>
定义全局常量的最佳位置是入口脚本。Yii 支持三种常量 −
YII_DEBUG − 定义您是否处于调试模式。如果设置为 true,我们将看到更多日志数据和详细的错误调用堆栈。
YII_ENV − 定义环境模式。默认值为 prod。可用值为 prod、dev 和 test。它们用于配置文件中,例如定义不同的 DB 连接(本地和远程)或其他值。
YII_ENABLE_ERROR_HANDLER −指定是否启用默认的 Yii 错误处理程序。
要定义全局常量,请使用以下代码 −
//定义全局常量 defined('YII_DEBUG') 或 define('YII_DEBUG', true); 相当于: if(!defined('YII_DEBUG')) { define('YII_DEBUG', true); }
注意 − 全局常量应在入口脚本的开头定义,以便在包含其他 PHP 文件时生效。