2015-08-10 4 views
1

Сейчас я работаю на модульной системе в Laravel 5. В настоящее время в Laravel 5, вы должны сделать это, как это в конфиге/app.phpLaravel 5 | Как программно установить класс aliasses?

'aliases' => [ 
    ...other classes... 
    'App'  => Illuminate\Support\Facades\App::class, 
] 

То, что я хотел бы сделать это, где-то внутри основной модели моего модуля, установите эту или другие модели в качестве псевдонима. Поэтому мне не нужно менять свой файл конфигурации каждый раз, когда я устанавливаю или удаляю модуль.

У кого-нибудь есть решение? Пробовал это уже несколько дней, и я пока не могу найти решение! Заранее спасибо :)

ответ

5

Существует class_alias PHP function, который использует также Laravel. Вы можете просто сделать это:

class_alias(The\Real\Class::class, 'TheAlias'); 
+0

Хм, это хороший момент: D Я не знал, что существует такая функция. Поэтому, когда я использую это с конфигурацией модуля в своем модуле ModulesServiceProvider.php, я думаю, что это может сработать! Thanks :) –

+0

Как насчет Ленивой загрузки? Будет ли это работать автоматически с этой функцией? –

+2

Lazy loading не имеет никакого отношения к 'class_alias'. Эта функция просто создает псевдоним, поэтому вы можете получить доступ к исходному классу под другим именем. – lukasgeiter

Смежные вопросы