Сценарии ввода отвечают за запуск цикла обработки запросов. Это просто PHP-скрипты, доступные пользователям.
На следующем рисунке показана структура приложения —
Веб-приложение (а также консольное приложение) имеет один сценарий ввода. Конечный пользователь делает запрос к входному скрипту. Затем сценарий ввода создает экземпляры приложений и перенаправляет запросы к ним.
Сценарий ввода для консольного приложения обычно хранится в базовом пути проекта и называется yii.php . Сценарий ввода для веб-приложения должен храниться в доступном через Интернет каталоге. Это часто называется index.php .
Скрипты Entry делают следующее:
- Определите константы.
- Зарегистрировать автозагрузчик Composer.
- Включить файлы Yii.
- Загрузите конфигурацию.
- Создайте и настройте экземпляр приложения.
- Обработать входящий запрос.
Ниже приведен сценарий ввода для базового шаблона приложения.
<?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(); ?>
Ниже приведен сценарий ввода для консольного приложения.
#!/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 по умолчанию.
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); }
Примечание . Глобальные константы должны быть определены в начале сценария ввода, чтобы они вступили в силу при включении других файлов PHP.