Задать вопрос
nepster-web
@nepster-web

Laravel5. Как добавить alias только для определенной части приложения?

У меня есть такое себе псевдо разделение между backend и frontend, и есть необходимость добавить alias конкретно для backend.

Ранее для манипуляции с конфигурацией я использовал мидл вер:
class Backend
{
    public function handle($request, Closure $next)
    {
        // Namespace для виджетов
        Config::set('laravel-widgets.default_namespace', 'App\Widgets\Backend');

        // Редирект после успешной аутентификации
        Config::set('auth.redirectAfterLogin', 'backend/auth');

        return $next($request);
    }
}


Тут все работает. Теперь мне потребовалось проделать аналогичную задачу для backend с aliases, чтобы получить во всех видах хелпер AuthHelper.

Я попробовал сделать что-то типа:
Config::set('app.aliases', array_merge(Config::get('app.aliases'), [
            'AuthHelper' => \App\Helpers\Backend\AuthHelper::class,
        ]));
      
       или

        \App::alias('AuthHelper', \App\Helpers\Backend\AuthHelper::class);


Результат один: Class 'AuthHelper' not found

При этом если добавить просто в конфиг:
'aliases' => [
        ...
        'AuthHelper'  => \App\Helpers\Backend\AuthHelper::class,
        ...
    ],


Все будет работать. Но проблема в том, что мне для backend части и для frontend части нужны разные AuthHelper.

Как можно это дело порешать ?
  • Вопрос задан
  • 452 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
nepster-web
@nepster-web Автор вопроса
Нагуглил:
'
// Перерегистрация класса AuthHelper
        $loader = \Illuminate\Foundation\AliasLoader::getInstance();
        $loader->alias('AuthHelper', \App\Helpers\Backend\AuthHelper::class);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы