+157
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
<?php
// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
require(__DIR__ . '/../vendor/autoload.php'); // загружаем автозагрузчик
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php'); // DISREGARD THIS, загружаем вручную
$config = require(__DIR__ . '/../config/web.php');
(new yii\web\Application($config))->run();
Входной скрипт Yii 2. Эта штука требует небольшого пояснения.
Дело в том, что использовать константу YII_ENV для разработчиков оказалось некошерно, поэтому используются булевы константы YII_ENV_DEV, YII_ENV_PROD, YII_ENV_TEST, которые вычисляются в файле класса BaseYii (на всякий уточню - да, в файле с объявлением класса первым делом высчитываются глобальные константы).
Так как понятие декларативной конфигурации тоже не очень близко этому фреймворку, эти константы используются прямо в конфигурационном php-файле. То есть, файл Yii.php обязан быть подгружен до того, как будут подгружены конфиги. А даже если сделать конфиг без использования этих констант или объявить их заранее, то последними строками Yii.php (после объявления класса) идет подключение автозагрузчика (да-да, в файле, который тоже служит для объявления класса), без которого почему-то никак (в composer-based проекте, ага). Ну, то есть без ручного подключения файла в этом фреймворке всё-таки вообще никак.
Я не понимаю, как можно было умудриться идти практически по всем современным стандартам и опять проебать всё.
Запостил: Fike,
18 Января 2015
Комментарии (0) RSS
Добавить комментарий