Laravel как сменить реализацию интерфейса Illuminate\Contracts\View\Factory с Illuminate\View\Factory на CustomViewFactory?

Как сменить реализацию интерфейса Illuminate\Contracts\View\Factory => Illuminate\View\Factory на Illuminate\Contracts\View\Factory => App\View\CustomViewFactory ?


Ответы (1 шт):

Автор решения: Максим К

Все просто

  1. Создаешь сервис-провайдер вместо дефолтного App\Providers\ViewServiceProvider, который наследуешь от Illuminate\View\ViewServiceProvider
  2. В App\Providers\ViewServiceProvider переопределяешь метод
    protected function createFactory($resolver, $finder, $events)
    {
        return new App\View\CustomViewFactory($resolver, $finder, $events);
    }
  1. В config/app.php в массиве providers заменяешь строку Illuminate\View\ViewServiceProvider::class => App\Providers\ViewServiceProvider::class
→ Ссылка