网页从静态到MVC的进化史

一、静态网站
(1个html => 1个页面)
************************************
1. 纯静态页面
举例:
1.html

二、动态网站
(数据库中的1条记录 => 1个网页)
************************************
1. 面向过程,写一个文章管理、发布功能。
(请求:1个php页面 => 1个php模块)
举例:
article.php?id=1
// php代码和html混合式开发:1个php页面,写1次「数据库的天龙八部」。

2. 面向对象:使用Model类,翻页类,模板引擎实现文章管理、发布功能。
(自己封装类,提升代码的可重用性)
举例:
article.php?id=1
// 第一步:使用require_once(‘./lib/Model.class.php’) 引入Model类。引入数据库的配置文件。
// 第二步:实例化一个类,$model = new Model(); 准备好SQL语句:$sql=’SELECT * FROM `article`’。
// 第三步:调用Model类中的方法:$ret = $model->select($sql)。返回查询的结果集。

3. 使用组件式开发:
(自己写太麻烦,使用第三方插件,不重复造轮子了… (*^__^*) 嘻嘻……)
如:数据库、验证码组件:

  • catfan/medoo
  • gregwar/captcha

4. MVC设计模式

  • 模型
  • 视图
  • 控制器

(单一入口,在入口文件引入使用到的类,使用命名空间防止类名重复。加入路由负责请求url映射,请求1个页面,实际上是访问1个函数)

举例:
// 第一步:请求文章页面 ../article/1
// 第二步:URL映射到:article控制器,访问showarticle(1)方法传递了参数:文章id
// 第三步:在方法中,调用了Model模型层,获取结果集。
// 第四步:将返回的结果集,传递给视图层,组装成HTML的字符串。
// 第五步:响应:把HTML字符串传送给浏览器

5. 框架

  • Laravel
  • YII
  • ThinkPHP

集成了一些:管理工具
如:包管理工具、数据库迁移、命令行工具
组件:请求、响应