困惑 - AppServiceProvider.php 与 app.php
Confused - AppServiceProvider.php versus app.php
我在哪里可以准确指定我的绑定?看来我可以在这些文件中的任何一个中完成。
config/app.php
'providers' =>
里面
app/Providers/AppServiceProvider.php
register()
里面
如果您的绑定与 App 无关,那么我将创建一个新的 ServiceProvider class,并在其中覆盖 register 方法,然后你必须让 Laravel 知道这个 class 在你的 config/app.php[= 中注册为提供者22=]供应商列表,即:
app/Providers/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'
);
}
}
config/app.php
'providers' => [
// Other Service Providers
'App\Providers\MyNewClassServiceProvider',
],
服务提供商数组是通过config/app.php
加载的。这是提供商注册的唯一实际位置,也是您应该放置 Service Providers.
的地方
AppServiceProvider
用于您已覆盖(或实际指定)的 Laravel-特定服务,例如 Illuminate\Contracts\Auth\Registrar
、HTTP/Console 内核等您希望在 Laravel 中覆盖。这是一个 单一 服务提供商,它注册您指定的容器绑定。
确实,您可以在此处加载任何您想要的内容,但 app/Providers
目录中有大量现成的服务提供程序供您使用,因此您不必自己制作一个。
我在哪里可以准确指定我的绑定?看来我可以在这些文件中的任何一个中完成。
config/app.php
'providers' =>
app/Providers/AppServiceProvider.php
register()
如果您的绑定与 App 无关,那么我将创建一个新的 ServiceProvider class,并在其中覆盖 register 方法,然后你必须让 Laravel 知道这个 class 在你的 config/app.php[= 中注册为提供者22=]供应商列表,即:
app/Providers/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'
);
}
}
config/app.php
'providers' => [
// Other Service Providers
'App\Providers\MyNewClassServiceProvider',
],
服务提供商数组是通过config/app.php
加载的。这是提供商注册的唯一实际位置,也是您应该放置 Service Providers.
AppServiceProvider
用于您已覆盖(或实际指定)的 Laravel-特定服务,例如 Illuminate\Contracts\Auth\Registrar
、HTTP/Console 内核等您希望在 Laravel 中覆盖。这是一个 单一 服务提供商,它注册您指定的容器绑定。
确实,您可以在此处加载任何您想要的内容,但 app/Providers
目录中有大量现成的服务提供程序供您使用,因此您不必自己制作一个。