1.理解请求周期
首页设置在public/index.php,从bootstrap/app.php获取应用实例。
从app/Http/Kernel.php的内核继承lluminate\Foundation\Http\Kernel,基本有两个功能。
一:定义了bootstrappers数组进行引导程序。
二:定义了HTTP中间件。
标志性handle就是接收一个 Request 并返回一个 Response。
2.服务提供者
存在于config/app.php 文件中的 providers 数组中。 首先, register 方法进行注册,所有提供者注册完成,boot 方法将会被调用,几乎所有服务容器的绑定都是在服务容器中进行的
3.服务容器
主要是绑定和解析的过程。
绑定:bind和signleton
例子:
$this->app->bind('API',function($app){
return new API($app->make('xxx'));
}
解析:make
$api=$this->make(API);
4.Facade 门面
Facade 基类使用 __callStatic() 魔术方法在你的 facades 中延迟调用容器中对应对象的方法。
所有门面累继承了 Facade 基类,并且定义了 getFacadeAccessor() 方法。这个方法的作用是返回服务容器中对应名字的绑定内容,相当于静态调用。
5.Contracts 契约
契约需要你明显地定义依赖关系,用来定义核心服务的接口,具有低耦合和简单性。
6.依赖注入
类的依赖通过构造器或在某些情况下通过「setter」方法进行「注入」,看我也不懂。
代码实例:
1.容器方法
this->bind('API',function($app){
return new API($app->make('xxx'));
}
2.依赖注入
function (\Illum\Log\Writer $log){
$log->debug('test')
}
3.门面
Log::debug('test')
Log.png













网友评论