Где я могу указать свои привязки точно? Кажется, я могу сделать это в любом из этих файлов.Confused - AppServiceProvider.php против app.php
конфигурации/app.php Внутри 'providers' =>
приложения/Провайдеры/AppServiceProvider.php Внутри register()
Где я могу указать свои привязки точно? Кажется, я могу сделать это в любом из этих файлов.Confused - AppServiceProvider.php против app.php
конфигурации/app.php Внутри 'providers' =>
приложения/Провайдеры/AppServiceProvider.php Внутри register()
Если привязки не связаны с 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',
],
массив поставщиков услуг загружается через config/app.php
. Это единственное место, где регистрируются провайдеры, и где вы должны поставить Поставщики услуг.
AppServiceProvider
предназначено для определенных вами услуг Laravel, которые вы переопределили (или фактически указали), таких как Illuminate\Contracts\Auth\Registrar
, ядра HTTP/Console и все, что вы хотите переопределить в Laravel. Это поставщик услуг, который регистрирует привязки контейнеров, которые вы указали.
Действительно, вы можете загружать все, что хотите здесь, но есть набор готовых поставщиков услуг в каталоге app/Providers
, так что вам не нужно идти и делать это самостоятельно.
Полностью релевантный вопрос, но спасибо за закрытое голосование – user391986
Вы регистрируете привязки в поставщике услуг и загружаете поставщиков услуг через ** config/app.php **. –