lvqinghou 发表于 2012-8-10 13:13:42

CodeIgniter 2是如何工作的

现在“市面上的”PHP开发框架层出不穷,但是我们选择框架需要慎重,尤其是新人,在还没有深入了解PHP之前,我们不太建议去接触过多的框架,这样反而让你对程序设计和构建迷失了自己的方向。另外选择框架需要考虑多方面的因素,除了设计合理之外,文档、社区、扩展应用也是考虑的几个方面,今天我们带着大家来对一款主流的PHP框架进行分析,了解他整个的工作过程。
index.php
* 检查system和application文件夹是否存在;* 执行system/core/CodeIgniter.php
system/core/CodeIgniter.php* Common.php(基础函数和库)* Hooks.php (载入钩子)* 执行钩子:pre_system* Config.php (载入 application/config/config.php, 初始化 base_url)* Utf8.php* URI.php* Router.php* $RTR->_set_routing(): 载入application/config/routes.php将地址匹配到一个路由中,设定class和method(后面将会被用到)* Output.php* 钩子:cache_override* 如果没有设置缓存并且钩子设置的缓存不存在,显示缓存然后在这里退出;* Security.php* Input.php* Lang.php* Controller.php*Loader.php*载入autoload初始化的项目(libraries, helpers..)*定义get_instance()* application/core/MY_Controller.php(如果存在则载入)* 载入控制器class(如果不存在则显示404错误)* 钩子:pre_controller* 创建控制器实例* 钩子:post_controller_constructor* 如果定义了_remap()调用控制器这个方法* 如果_remap没有定义,查看method,如果不存在显示404错误;* 调用method(保函参数)* 钩子:post_controller* 钩子:display_override* 如果钩子没有设置,生成内容输出,如果需要创建缓存,发送HTTP请求(headers+body)* 钩子:post_system* 关闭任何的数据库连接原文地址:http://www.cit.cn/tech/develop/codeIgniter/2012/0810/432.html

lkgosurlfing 发表于 2012-8-11 16:53:30

学习了.

Déjà_vu 发表于 2012-8-11 16:56:05

学习了
页: [1]
查看完整版本: CodeIgniter 2是如何工作的