Yii2学习笔记系列20——Handling Requests-Bootstrapping(请求处理之启动引导)
五 27 五月 2016
启动引导
启动引导指的是在应用开始解析和处理请求之前,一个预先准备环境的过程。启动引导会在两个地方进行:入口脚本处和应用主体处。
在入口脚本中,不同的类库的自动类加载器会被注册进来(Class Autoloader,简称自动加载器),其中包括通过autoload.php
文件注册的Composer自动加载器和通过Yii
类文件注册的Yii自动加载器。之后,入口脚本会加载应用程序的配置并且创建应用主体的实例。
在应用主体的构造函数中会做以下的工作:
-
调用preInit() - 预初始化方法,从而配置一些优先级比较高的属性,例如basePath。
-
注册异常处理器。
-
通过给定的应用程序配置初始化应用程序属性。
-
调用init() - 初始化方法,它会进而顺序调用bootstrap() - 启动引导方法来引导组件。
因为引导工作必须在处理每一次请求之前完成,所以请尽量轻量化该过程,并且尽可能的优化。
尽量不要注册过多的引导组件,只有当一个组件需要在HTTP请求的完整生命周期内都作用时才需要将其注册为引导组件。例如,如果一个模块需要注册其他的URL解析规则,就应该在bootstrap 属性中将其列出,这样儿它才会在解析URL请求之前生效。(译注:换言之,为了性能需要,除了 URL 解析等少量操作之外,绝大多数组件都应该按需加载,而不是都放在引导过程中。)
在生产环境下,可以开启字节码缓存,比如PHP OPcache或者APC,来减少加载和解析PHP文件的耗费时间。
一些大型的应用有着非常复杂的应用程序配置,该配置会被分割成许多小的配置文件,在这种情况下,可以考虑缓存整个配置数组,并在入口脚本创建应用实例之前直接从缓存中加载。
Category: PHP Develop