[TOC] ## PHP框架 给 PHP 网站开发者使用的应用程序开发框架和工具包。 它的目标是让你能够更快速的开发,它提供了日常任务中所需的大量类库, 以及简单的接口和逻辑结构。通过减少代码量,让你更加专注 于你的创造性工作。 ## CI应用流程图: ![](https://box.kancloud.cn/81bd408e0ba9cf308c0099653177fdfc_697x205.png) 1. index.php 文件作为前端控制器,初始化运行 CodeIgniter 所需的基本资源; 2. Router 检查 HTTP 请求,以确定如何处理该请求; 3. 如果存在缓存文件,将直接输出到浏览器,不用走下面正常的系统流程; 4. 在加载应用程序控制器之前,对 HTTP 请求以及任何用户提交的数据进行安全检查; 5. 控制器加载模型、核心类库、辅助函数以及其他所有处理请求所需的资源; 6. 最后一步,渲染视图并发送至浏览器,如果开启了缓存,视图被会先缓存起来用于 后续的请求。 ## yii应用流程图 ![](https://box.kancloud.cn/2015-10-10_561892fbae5c2.png) 1. 用户向入口脚本 web/index.php 发起请求。 2. 入口脚本加载应用配置并创建一个应用实例去处理请求。 3. 应用通过请求组件解析请求的路由。 4. 应用创建一个控制器实例去处理请求。 5. 控制器创建一个操作实例并针对操作执行过滤器。 6. 如果任何一个过滤器返回失败,则操作退出。 7. 如果所有过滤器都通过,操作将被执行。 8. 操作会加载一个数据模型,或许是来自数据库。 9. 操作会渲染一个视图,把数据模型提供给它。 10. 渲染结果返回给响应组件。 11. 响应组件发送渲染结果给用户浏览器。 ## 单一入口(index.php) 单一入口的应用程序就是说用一个文件处理所有的HTTP请求,不管访问应用的哪个功能,都是从浏览器访问index.php文件,这个文件就是这个应用程序的单一入口。一个应用都有一个统一(但不一定是唯一)的入口。应该说,所有应用都是从入口文件开始的,并且不同应用的入口文件是类似的。 打个比方,大家都要上WC,都是男生进一个门,女生进一个门,这两个门就是WC的两个入口。而现在去一个公园里面的WC,外面还有一个门,不管男女都从最外面的门进入,交了钱以后才进入里面的男厕所门或女厕所门,而这个最外面的门就是这个WC的单一入口。 ## 应用 应用是一个管理系统架构及生命周期的对象。可以简单的点理解为项目。 ## 模块 一个典型的应用是由多个模块组成的,这些模块通常都是应用目录下面的一个子目录,每个模块都有自己独立的配置文件、公共文件和类库文件。 ## 模型-视图-控制器(MVC) MVC 是一种 用于将应用程序的逻辑层和表现层分离出来的软件方法。在实践中,由于这种分离 所以你的页面中只包含很少的 PHP 脚本。 ### 模型 代表你的数据结构。通常来说,模型类将包含帮助你对数据库进行增删改查的方法。 ### 视图 是要展现给用户的信息。一个视图通常就是一个网页,一个视图也可以是一部分页面(例如页头、页尾),它也可以是一个 RSS 页面, 或其他任何类型的页面。 ### 控制器 是模型、视图以及其他任何处理 HTTP 请求所必须的资源之间的中介,并生成网页。 ## 操作 一个控制器包含多个操作(方法),操作方法是一个URL访问的最小单元。 ## URL设计 ### 普通模式 ~~~ http://localhost/index.php?m=home&c=user&a=login&var=value ~~~ ### PATHINFO模式 ~~~ http://localhost/index.php/home/user/login/var/value/ ~~~