Учебники

Yii — Сценарии входа

Сценарии ввода отвечают за запуск цикла обработки запросов. Это просто 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.