入口脚本是应用程序引导过程的第一步。一个应用程序(无论是 Web 应用程序还是控制台应用程序)都有一个唯一的入口脚本。最终用户向入口脚本发出请求,这些请求会实例化应用程序实例并将请求转发给它们。
Web 应用程序的入口脚本必须存储在 Web 可访问目录下,以便最终用户可以访问它们。它们通常名为 index.php
,但也可以使用任何其他名称,只要 Web 服务器可以找到它们即可。
控制台应用程序的入口脚本通常存储在应用程序的 基本路径 下,并命名为 yii
(带 .php
后缀)。它们应该被设置为可执行的,以便用户可以通过命令 ./yii <route> [arguments] [options]
运行控制台应用程序。
入口脚本主要做以下工作
以下是 基本 Web 项目模板 中入口脚本的代码。
<?php
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
// register Composer autoloader
require __DIR__ . '/../vendor/autoload.php';
// include Yii class file
require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';
// load application configuration
$config = require __DIR__ . '/../config/web.php';
// create, configure and run application
(new yii\web\Application($config))->run();
类似地,以下是控制台应用程序的入口脚本的代码
#!/usr/bin/env php
<?php
/**
* Yii console bootstrap file.
*
* @link https://yiiframework.cn/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license https://yiiframework.cn/license/
*/
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
// register Composer autoloader
require __DIR__ . '/vendor/autoload.php';
// include Yii class file
require __DIR__ . '/vendor/yiisoft/yii2/Yii.php';
// load application configuration
$config = require __DIR__ . '/config/console.php';
$application = new yii\console\Application($config);
$exitCode = $application->run();
exit($exitCode);
入口脚本是定义全局常量的最佳位置。Yii 支持以下三种常量
YII_DEBUG
:指定应用程序是否在调试模式下运行。在调试模式下,应用程序将保留更多日志信息,并在抛出异常时显示详细的错误调用堆栈。因此,调试模式主要在开发过程中使用。YII_DEBUG
的默认值为 false
。YII_ENV
:指定应用程序运行在哪个环境中。这将在 配置 部分中详细介绍。YII_ENV
的默认值为 'prod'
,表示应用程序运行在生产环境中。YII_ENABLE_ERROR_HANDLER
:指定是否启用 Yii 提供的错误处理程序。此常量的默认值为 true
。在定义常量时,我们通常使用以下代码
defined('YII_DEBUG') or define('YII_DEBUG', true);
等效于以下代码
if (!defined('YII_DEBUG')) {
define('YII_DEBUG', true);
}
显然前者更简洁,更容易理解。
常量定义应该放在入口脚本的最开头,这样当其他 PHP 文件被包含时它们才能生效。
发现错别字或您认为此页面需要改进?
在 github 上编辑 !
注册 或 登录 才能发表评论。