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

使用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 方法,绑定实现的具体类。



namespace 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'));
        });
    }
}

未完待续。。。

你可能感兴趣的:(laravel使用)