[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/
~~~
- 序言
- 第一章:准备工作
- 写在学习之前的话
- web应用开发结构
- 开发工具/环境
- 第二章:展现层面(HTML/CSS)
- HTML简介
- HTML基础
- HTML编码
- HTML链接
- HTML图像
- HTML列表
- HTML表单
- HTML表格(分水岭)
- HTML 实体
- HTML框架
- CSS层叠样式表
- CSS选择器
- CSS文本/字体
- CSS继承和叠加
- CSS框模型
- CSS浮动(分水岭)
- CSS定位
- CSS背景
- CSS图标字体
- CSS补充
- 开发技巧
- 第三章:展现层面(Javascript)
- JS简介
- JS实现
- JS输出交互
- JS变量
- JS数据类型
- JS运算符
- JS流程控制(分水岭)
- JS函数
- JS数组
- JS对象(分水岭)
- JS数组对象
- JS字符串对象
- JS数学对象
- JS日期对象
- JS BOM对象(分水岭)
- JS DOM对象
- JS事件对象
- JS元素对象
- JS DOM节点
- 第四章:展现层面(Jquery)
- JQ简介
- JQ使用
- JQ选择器
- JQ筛选
- JQ属性
- JQ-CSS
- JQ事件
- JQ文档处理
- JQ效果
- JQ-ajax
- 第五章:逻辑/业务层面(PHP)
- PHP简介
- PHP变量
- PHP数据类型
- PHP常量
- PHP运算符
- PHP流程控制
- PHP函数(分水岭)
- PHP日期
- PHP数学
- PHP数组
- PHP字符串
- PHP正则表达式(分水岭)
- PHP目录操作
- PHP文件
- PHP上传/下载
- PHP面向对象(分水岭)
- PHP图像处理
- PHP会话控制
- Ajax异步处理
- PHPMysql扩展
- PHPMysqli扩展
- PHPPdo扩展
- PHP接口
- PHP命名空间
- 第六章:逻辑/业务层面(框架设计)
- 第七章:存储层面(mysql)
- Mysql基础
- Mysql Sql简介
- Mysql数据库
- Mysql数据类型
- Mysql数据表
- Mysql操作记录
- Mysql查询
- Mysql修改表结构
- Mysql日期与时间
- Mysql分组统计
- Mysql多表查询
- Mysql安全
- Mysql存储引擎
- Mysql事务
- Mysql视图
- Mysql触发器
- Mysql存储过程
- Mysql存储函数
- Mysql优化
- 第八章:服务器(Linux)
- Linux介绍与安装
- Shell
- 目录与文件操作
- VIM编辑器使用
- 帐号管理
- SUDO
- 权限控制
- 压缩与打包
- 软件安装
- 计划任务
- 进程管理
- 宝塔Linux面板