Yii - входные скрипты
Скрипты входа отвечают за запуск цикла обработки запроса. Это просто сценарии PHP, доступные пользователям.
На следующем рисунке показана структура приложения -
![](https://post.nghiatu.com/assets/tutorial/yii/images/entry_scripts_structure.jpg)
Веб-приложение (а также консольное приложение) имеет сценарий с одной записью. Конечный пользователь делает запрос скрипту входа. Затем сценарий входа создает экземпляры приложений и пересылает им запросы.
Сценарий входа для консольного приложения обычно хранится в базовом пути проекта и называется yii.php. Сценарий входа для веб-приложения должен храниться в доступном в Интернете каталоге. Его часто называютindex.php.
Скрипты входа делают следующее -
- Определите константы.
- Зарегистрируйте автозагрузчик Composer.
- Включите файлы Yii.
- Загрузить конфигурацию.
- Создайте и настройте экземпляр приложения.
- Обработайте входящий запрос.
Ниже приведен сценарий входа для basic application шаблон -
<?php
//defining global constants
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 files
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
//load application config
$config = require(__DIR__ . '/../config/web.php'); //create, config, and process reques (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/
*/
//defining global constants
defined('YII_DEBUG') or define('YII_DEBUG', true);
//register composer autoloader
require(__DIR__ . '/vendor/autoload.php');
require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');
//load config
$config = require(__DIR__ . '/config/console.php'); //apply config the application instance $application = new yii\console\Application($config); //process request $exitCode = $application->run(); exit($exitCode);
?>
Лучшее место для определения глобальных констант - это сценарии входа. Есть три поддерживаемых константы Yii -
YII_DEBUG- Определяет, находитесь ли вы в режиме отладки или нет. Если установлено значение true, мы увидим больше данных журнала и подробный стек вызовов ошибок.
YII_ENV- Определяет режим среды. Значение по умолчанию - prod. Доступные значения: prod, dev и test. Они используются в файлах конфигурации для определения, например, другого соединения с БД (локального и удаленного) или других значений.
YII_ENABLE_ERROR_HANDLER - Указывает, следует ли включить обработчик ошибок Yii по умолчанию.
Для определения глобальной константы используется следующий код -
//defining global constants
defined('YII_DEBUG') or define('YII_DEBUG', true);
which is equivalent to:
if(!defined('YII_DEBUG')) {
define('YII_DEBUG', true);
}
Note - Глобальные константы должны быть определены в начале сценария входа, чтобы они вступили в силу при включении других файлов PHP.