什么是内核对象
由于 PHP 可以处理 WEB 和 CLI 两种接口请求,所以 Laravel 就得需要设计HttpKernel
和 ConsoleKernel
来处理这两种请求。
实际上,Laravel 刚刚启动时先启动容器对象Application
,然后加载配置、通过ServiceProvider
往容器对象里填充一些框架的核心服务为接下来处理请求做准备,但是真正干活的是 Kernel (HttpKernel 或 ConsoleKernel),Application 会把活转给 Kernel 来干。框架入口文件里的$output = Kernel::handle ($input);
对于 WEB 请求,输入时 Request,输出是 Response;对于 CLI,输入是 argument + option 命令行变量构成的 Input 对象,输出则是展示在终端的 Output 对象。
所以,依赖注入 (IoC 容器) 是 Laravel 的基石,真正干活的是内核对象。
推荐文章: