Входные скрипты это первое звено в процессе начальной загрузки приложения. Приложение (веб приложение или консольное приложение) включает единый входной скрипт. Конечные пользователи делают запросы к входному скрипту, который создает объекты приложения и перенаправляет запрос к ним.
Входные скрипты для веб приложений должны быть сохранены в папках, доступных из веб, таким образом они могут быть
доступны конечным пользователям. Такие скрипты обычно именуются index.php
, но так же могут использовать другие имена,
которые могут быть распознаны используемыми веб-серверами.
Входные скрипты для консольных приложений обычно расположены в базовой папке приложений и имеют название
yii
(с суффиксом .php
). Они должны иметь права на выполнение, таким образом пользователи смогут запускать консольные приложения
через команду ./yii <маршрут> [аргументы] [опции]
.
Входные скрипты в основном делают следующую работу:
Ниже представлен код входного скрипта для базового шаблона приложения.
<?php
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
// регистрация загрузчика классов Composer
require __DIR__ . '/../vendor/autoload.php';
// подключение файла класса Yii
require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';
// загрузка конфигурации приложения
$config = require __DIR__ . '/../config/web.php';
// создание и конфигурация приложения, а также вызов метода для обработки входящего запроса
(new yii\web\Application($config))->run();
Ниже представлен аналогичный код входного скрипта консольного приложения:
#!/usr/bin/env php
<?php
/**
* Yii console bootstrap file.
*
* @link https://www.yiiframework.com/
* @copyright Copyright (c) 2008 Yii Software LLC
* @license https://www.yiiframework.com/license/
*/
defined('YII_DEBUG') or define('YII_DEBUG', true);
// регистрация загрузчика классов Composer
require __DIR__ . '/vendor/autoload.php';
// подключение файла класса Yii
require __DIR__ . '/vendor/yiisoft/yii2/Yii.php';
// загрузка конфигурации приложения
$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 файлы будут подключены.
Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.