最近学习了TP框架,把心得分享一下吧。
TP是基于MVC架构的,Model View Controller 。
其中示例图展示如下:
模型:处理数据和业务逻辑
视图:通过布局向用户展示数据
控制器:接受用户请求,并调用相应的模型处理
原理:浏览器向控制器发送HTTP请求调用网页数据,控制器给模型发送请求参数,模型选择相应的数据表返回原始数据rows,控制器得到了原始数据后向视图层传递原始数据,视图层通过对原始数据的加工使得原始数据变成“树型”DOM,然后在返回给控制器进而通过HTTP返回浏览器,浏览器得到这些DOM(DOCUMENT OBJECT MODEL),然后翻译成图形数据显示在用户浏览器上。
框架:框架是程序结构代码的集合,而不是业务逻辑代码。集合中包含了许多类、函数和功能类包。这个集合是按照一定标准组成的功能体系。体系中有许多设计模式,比如MVC等。
单一入口框架:在一个网站中,所有的请求都是指向一个脚本文件的。
好处:项目结构规范,控制灵活,更加安全
典型代表:zend,CodeIgniter(CI),cakephp,ThinkPHP等
TP文件夹作用:
//common 存放当前项目的公共函数
//Conf 存放当前项目的配置文件
//Lang 存放当前项目的语言包
// Lib 存放当前项目的控制器和模型
->
//Action 存放MVC控制器的Controll控制器
//Behavior 存放行为管理的目录
//Model 存放项目模型文件
//Widget 存放项目的组件(小物件)
//RunTime 存放当前项目的运行时的文件
->
//cache 存放模板的缓存
//Data存放数据的目录
//Log存放日志
//Temp存放数据的缓存
//~runtime.php存放编译后加载的文件
//Tpl 存放当前项目的模板文件
// MVC中的 Model Controll层 存放 LIB文件夹下
// MVC中的 View 层,存放Tpl层
视图显示流程:
1.加载thinkphp.php
require('./ThinkPHP/ThinkPHP.php'); (包含很多头文件)
2.加载核心文件 ./thinkPHP/LIB/Core (控制器的核心文件,模型的核心文件)
3.加载项目的文件 分析URL 调用相关控制器
m moudle 模块 控制器
a action 方法 action = 页面