现在“市面上的”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
|