Я пытаюсь загрузить различное промежуточное программное обеспечение для разных сред. Что-то вроде:
Включить глобальное промежуточное ПО только для одной среды в Laravel 5
Я пытался получить доступ к параметрам конфигурации, используя вспомогательную функцию config
. Код в App/Http/Kernel.php
public function __construct(Application $app, Router $router)
{
parent::__construct($app, $router);
$env = 'devel' ;
$env = config('app.env');
if ( $env == 'devel' ) {
$this->prependMiddleware('\App\Http\Middleware\GlobalConfigDevel');
}
}
но выдает следующее исключение:
Fatal error: Uncaught exception 'ReflectionException' with message 'Class config does not exist'
Если я прокомментирую строку:
//$env=config('app.env');
Работает без проблем, загружая промежуточное ПО GlobalConfigDevel. Фактически, при использовании следующего маршрута в routes/wep.php
(который использует вспомогательную функцию config), он показывает параметр среды !!
Route::get('/', function () {
return dd(config('app.env'));
});
Есть ли причина не использовать вспомогательные функции внутри конструктора ??
примечание: для решения этой проблемы используется:
$env = env('APP_ENV', 'devel');