2015-05-21 8 views
3

Где я могу указать свои привязки точно? Кажется, я могу сделать это в любом из этих файлов.Confused - AppServiceProvider.php против app.php

конфигурации/app.php Внутри 'providers' =>

приложения/Провайдеры/AppServiceProvider.php Внутри register()

+0

Полностью релевантный вопрос, но спасибо за закрытое голосование – user391986

+1

Вы регистрируете привязки в поставщике услуг и загружаете поставщиков услуг через ** config/app.php **. –

ответ

1

Если привязки не связаны с App, то я бы создайте новый класс ServiceProvider, где я переписываю метод с моей новой привязкой, тогда вы должны позволить Laravel знать, что этот класс существует regi Stering в качестве поставщика услуг в вашем конфигурации списка/app.php поставщиков, то есть:

приложение/Поставщики/MyNewClassServiceProvider.php

<?php namespace App\Providers; 
use Illuminate\Support\ServiceProvider; 
class MyNewClassServiceProvider extends ServiceProvider { 
public function register() 
{ 
    $this->app->bind(
     'App\Repository\MyNewClassInterface', 
     'App\Repository\MyNewClassRepository' 
    ); 
} 
} 

конфигурации/app.php

'providers' => [ 
// Other Service Providers 

'App\Providers\MyNewClassServiceProvider', 
], 
2

массив поставщиков услуг загружается через config/app.php. Это единственное место, где регистрируются провайдеры, и где вы должны поставить Поставщики услуг.

AppServiceProvider предназначено для определенных вами услуг Laravel, которые вы переопределили (или фактически указали), таких как Illuminate\Contracts\Auth\Registrar, ядра HTTP/Console и все, что вы хотите переопределить в Laravel. Это поставщик услуг, который регистрирует привязки контейнеров, которые вы указали.

Действительно, вы можете загружать все, что хотите здесь, но есть набор готовых поставщиков услуг в каталоге app/Providers, так что вам не нужно идти и делать это самостоятельно.

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

  • Нет связанных вопросов^_^