Laravel 8 注册方法
如上所述,在 register
方法中,你只需要将服务绑定到服务容器中。而不要尝试在 register
方法中注册任何监听器,路由,或者其他任何功能。否则,你可能会意外地使用到尚未加载的服务提供者提供的服务。
让我们来看一个基础的服务提供者。在任何服务提供者方法中,你总是通过 $app
属性来访问服务容器:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Riak\Connection;
class RiakServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
$this->app->singleton(Connection::class, function ($app) {
return new Connection(config('riak'));
});
}
}
这个服务提供者只是定义了一个 register
方法,并且使用这个方法在服务容器中定义了一个 Riak\Connection
接口。如果你不理解服务容器的工作原理,请查看其文档。