阿江 2017-10-05 05:58:44 1599次浏览 0条回复 0 0 0

说明

学习Yii Framework 2易2框架的过程是漫长的也是充满乐趣的以下是我学习Yii2框架时对官网英文资料(请参见原文网址)的翻译和代码实现提供了较完整的代码供你参考不妥之处请多多指正

原文网址:

http://www.yiiframework.com/doc-2.0/guide-runtime-overview.html
Handling Requests Overview(请求处理概述)
http://www.yiiframework.com/doc-2.0/guide-runtime-bootstrapping.html
Bootstrapping(请求处理的引导过程)

本文主题:请求处理概述和引导过程(Handling Requests Bootstrapping)

一、Handling Requests Overview(请求处理概述)

每当Yii2应用处理一个请求时,它都执行相同的工作流程: 1、一个用户向入口脚本web/index.php发出一个请求; 2、入口脚本(entry script)加载应用配置(configuration)并创建一个应用实例(application)来处理这个请求; 3、应用使用组件request解析请求的路由(route); 4、应用创建一个控制器(controller)实例来处理请求; 5、控制器创建一个动作(action)实例,并执行动作相关的过滤器(filters); 6、如果任何一个过滤器失败,则动作将被取消; 7、如果所有的过滤器都通过,则动作将被执行; 8、动作加载一个数据模型(model),这个模型可能是从数据库中获取的数据; 9、动作渲染一个视图(view),并为这个视图提供相关的模型数据; 10、渲染结果返回给应用的response组件; 11、response组件发送渲染结果给用户的浏览器。

二、Bootstrapping(请求处理的引导过程)

引导过程(Bootstrapping)是指在应用开始响应一个请求之前的预处理过程,引导过程在两处位置去完成:入口脚本(entry script)和应用(application)。 在入口脚本中,各种类库被自动加载器注册进来,自动加载器包括使用autoload.php加载的Composer自动加载器和使用Yii类文件加载的Yii自动加载器。入口脚本接下来加载应用配置(configuration)并创建一个应用(application)实例。 在应用的构造器中完成以下引导工作: 1、调用preinit(),配置一些高级别的应用属性,如basePath; 2、注册错误处理器(error handler); 3、使用应用配置初始化应用属性; 4、调用init(),它会调用bootstrap()运行引导组件程序: 1)加载vender/yiisoft/extensions.php扩展文件 2)根据扩展文件,创建并运行bootstrap组件 3)根据应用的bootstrap属性,创建和运行application组件

因为引导过程会在每个请求处理之前都被执行,所以保证这个引导过程最简步骤,并极致优化是非常必要的。 不要尝试去注册太多的引导过程组件,只有那些在请求处理全过程中被调用的组件才能成为引导过程组件。例如:如果一个模块需要注册URL解析规则,它应该被列到bootstrap属性中,这样在新的URL规则在被解析成请求前就可以生效。

在生产环境中,将字节码缓存(如PHP OPcache或APC)打开,这样可以最快速的加载和解释PHP文件。

一些大型应用有非常复杂的应用配置,并将这些配置分为多个小的配置文件,如果是这种情况,可以考虑将整个配置数组缓存起来,在入口脚本创建应用实例之前直接从缓存中加载这些配置。

(全文完)

    没有找到数据。
您需要登录后才可以回复。登录 | 立即注册