Скрипты входа
Скрипты входа — это первая стадия процесса запуска приложения. Приложение (будь то веб-приложение или консольное) имеет единственный скрипт входа. Пользователи отправляют запросы в скрипты входа, которые создают экземпляры приложения и перенаправляют запросы в них.
Скрипты входа для веб-приложений должны храниться в доступных по сети каталогах, чтобы к ним могли получить доступ конечные пользователи. Они часто называются index.php, но могут использовать и другие имена, при условии, что веб-серверы смогут их найти.
Скрипты входа для консольных приложений обычно хранятся в корневой папке приложений и называются yii (с суффиксом .php). Они должны быть исполняемыми, чтобы пользователи могли запускать консольные приложения через команду ./yii <route> [arguments] [options].
Скрипты входа в основном выполняют следующие действия:
- Определение глобальных констант;
- Регистрация автозагрузчика Composer;
- Включение файла класса Yii;
- Загрузка конфигурации приложения;
- Создание и настройка экземпляра приложения приложения;
- Вызов yii\base\Application::run() для обработки входящего запроса.
Веб-приложения
Ниже представлен код скрипта входа для Шаблона базового веб-проекта.
<?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 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);
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-файлов.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/guide-structure-entry-scripts.html