2015-01-25 2 views
0

Где в Ларавеле я должен размещать первичные вызовы провайдеров услуг?Где в Laravel 5 я должен помещать первичные вызовы провайдеров услуг?

Вот пример:

\Socialite::extend('github', function($app) { 
     $config = $app['config']['services.github']; 
     return new \App\Socialite\EmailGithubProvider(
      $app['request'], $config['client_id'], 
      $config['client_secret'], $config['redirect'] 
     ); 
    }); 

Где я должен разместить этот код? Каковы лучшие практики?

ответ

2

Поместите свой код начальной загрузки в поставщика услуг.

Запуск php artisan make:provider SocialiteExtensionsServiceProvider сделает вас одним из app/Providers/SocialiteExtensionsServiceProvider.php.

Чтобы расширить классы менеджера Laravel (как и вы), поместите свой код в метод boot() поставщика. Для привязок IoC поместите их в register().

Затем добавьте поставщика в список поставщиков в config/app.php

+0

Если я делаю это, есть ошибка: 'Target [Laravel \ Светская \ Контракты \ Factory] не instantiable.' – DmitryR

+0

Ах, извините. Расширения менеджера (как это есть) должны выполняться в методе 'boot()', а не 'register()'. Обновление моего ответа. – danharper

+0

Спасибо, это работает! – DmitryR

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