Входной скрипт ¶
Входной скрипт является точкой входа в приложение.
Обычно доступен по адресу: http://hostname/index.php
.
Входной скрипт Yii Studio имеет некоторые отличия от стандарного входного скрипта Yii 2.
Ниже представлен код входного скрипта для демо-приложения.
<?
//Yii Studio
//https://yiistudio.ru
//ВНИМАНИЕ!
//Для установки измените на false
//После установки измените на true
defined('INSTALLED') or define('INSTALLED', true);
//Выбор приложения при многосайтовости
//задаем переменной APP_NAME название папки с кодом приложения
defined('APP_NAME') or define('APP_NAME', 'app_demo');
//defined('APP_NAME') or define('APP_NAME', 'app_1');
//defined('APP_NAME') or define('APP_NAME', 'app_2');
//...
//defined('APP_NAME') or define('APP_NAME', 'app_n');
defined('APP_CONSOLE') or define('APP_CONSOLE', false);//Если приложение консольное
defined('YII_DEBUG') or define('YII_DEBUG', true);//Включить/выключить отладку
defined('YII_ENV') or define('YII_ENV', 'dev');//Переключение окружения (разработка - 'dev', прод - 'prod')
defined('ADMIN_PATH') or define('ADMIN_PATH', dirname(__DIR__) . '/admin');
defined('BASE_PATH') or define('BASE_PATH', dirname(__DIR__));
defined('APP_PATH') or define('APP_PATH', dirname(__DIR__) .'/'.APP_NAME);
require(__DIR__ . '/../vendor/autoload.php');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');
$config = require(__DIR__ . '/../admin/config/admin.php'); //Подключение общего для всех приложений конфига
$config = array_replace_recursive($config,require(__DIR__ . '/../' . APP_NAME . '/config/web.php'));//Подключение конфига для приложения
if (YII_ENV_PROD) {
$config = array_replace_recursive($config, require(__DIR__ . '/../' . APP_NAME . '/config/db.php'));//Параметры подключения к БД прод
} else {
$config = array_replace_recursive($config, require(__DIR__ . '/../' . APP_NAME . '/config/db_dev.php'));//Параметры подключения к БД разработка
}
//Создание приложения
$application = new yii\web\Application($config);
//Доп. параметры
require(__DIR__ . '/../' . APP_NAME . '/params.php');
//Доп. события
require(__DIR__ . '/../' . APP_NAME . '/events.php');
//Запуск приложения
$application->run();
Входной скрипт выполняет следующие действия:
- Объявляет глобальные константы. Константа APP_NAME - названии папки с кодом приложения (используется при многосайтовости). Константа APP_CONSOLE опрделяется, если приложение консольное.
- Регистрирует загрузчик классов Composer.
- Подключает класс Yii.
- Загружает конфиги. Общий для всех приложений конфиг. Конфиг для конкретного приложения (переопределяет настройки из общего конфига). Конфиг с параметрами подключения к БД в зависимоти от окружения.
- Создает объект приложения и передет ему настройки.
- Подключяет доп. параметры для конкретного приложения
/params.php
. - Подключяет события для конкретного приложения
/events.php
. - Запускает объект приложения.