Laravel核心理解(一)--服务提供者(ServiceProvider)

来源:互联网 发布:供销社大数据集团 地点 编辑:程序博客网 时间:2024/06/09 19:46

使用Laravel也有一段时间了,跟TP(5.0之前的版本)比起来,确实是一个优雅的框架。在这里,我记录一下我所理解的laravel的核心,即服务提供者(ServiceProvider)、服务容器(ServiceContainer)、门面(facades)、契约(Contracts)。

服务提供者(ServiceProvider)

1、简介(翻译自官网)
服务提供者是所有Laravel应用启动的中心,Laravel所有的核心服务(包括你自己的应用)都是通过服务提供者来启动的。
而我们所谓的”启动“是指什么呢?一般来说,是指注册事物,包括注册服务容器绑定、事件监听器、中间件甚至路由。
如果你打开Laravel自带的config/app.php文件,将会看到一个providers数组,这里就是应用所要加载的所有服务提供者类,当然,其中很多是延迟加载的,也就是说不是每次请求都会被加载,只有真正用到它们的时候才会加载。

2、使用方法
2.1 创建serviceProvider类
定义一个serviceProvider类继承自 Illuminate\Support\ServiceProvider类。
通过Artisan命令make:provider可以简单生成一个新的提供者:

php artisan make:provider RiakServiceProvider

2.2 register方法
在类中定义register 方法,绑定实现的具体类。

<?phpnamespace App\Providers;use Riak\Connection;use Illuminate\Support\ServiceProvider;class RiakServiceProvider extends ServiceProvider{    /**     * 在容器中注册绑定.     *     * @return void     */    public function register()    {        $this->app->singleton('Riak\Contracts\Connection', function ($app) {            return new Connection(config('riak'));        });    }}

未完待续。。。

原创粉丝点击