本文共 2253 字,大约阅读时间需要 7 分钟。
1.ThinkPHP轻量级开发框架, 涉及LAMP, OOP, MVC, ORM, CURD, ActiveRecord, 单一入口等概念。
-----------------------------框架设计------------------------------------------------
2.ThinkPHP值得推荐的特性:
类库导入
URL模式(普通模式, PATHINFO模式, REWRITE模式, 兼容模式)
编译机制,(有效减小OOP开发中文件加载的性能开销,ALLLINONE模式)
ORM
查询语言
动态模型
高级模型
视图模型
关联模型
分组模块
模板引擎
AJAX支持
多语言支持
模式扩展
自动验证和完成
字段类型检查
数据库特性
缓存机制
3.部署目录,采用分组模块可以项目总体目录结构
ThinkPHP系统目录
App项目目录
Public网站公告目录(包括图片,JS,CSS统一放到网站的公共目录Public下面,)
index.php网站入口文件
4.MVC是一种将应用程序的逻辑层和表现层分开的方法. ThinkPHP中MVC分层体现:
模型(M): 模型的定义由Model类完成,
控制器(C): 应用控制器(核心控制器APP)和Action控制器承担了控制器角色,Action控制器完成业务控制,而应用控制器负责调度控制,
视图(V): 有View类和模板文件组成,模板做到100%分离,可以独立预览和制作
5.命名规范
5.1类文件都亿.class.php为后缀,并使用驼峰命名,首字母大写
5.2类名和文件名一致,大小写一致
5.3函数采用小写字母或下划线命名
5.4Action控制器类以Action为后缀
5.5模型类以Model为后缀
5.6属性和方法的命名使用驼峰法并首字母小写
5.7"__"以双下划线开头的方法为魔法方法,(如:__call,__autoload)
5.8常量,配置参数,语言变量以大写字母和下划线命名
5.9数据表和字段采用小写字母加下划线命名
5.10ThinkPHP默认采用UTF_8编码,所以新建程序文件也要以UTF-8命名
6.入口文件, ThinkPHP采用单一入口模式进行项目部署和访问, 入口文件主要完成的作用是:
*路径定义和项目名称定义(可选)
*额外参数定义(可选)
*载入框架入口文件(必须)
*实例化一个App应用(必须)
<?php
define('THINK_PATH','../THINKPHP');
define('APP_NAME','Myapp'); //通常必须和项目目录名称一致. 如果项目入口文件放在项目目录下面,则可以无须定义项目名称和项目目录,系统可以自动识别
define('APP_PATH','.'); //指项目目录所在路径,而不是项目入口文件所在目录
require(THINK_PHP."/ThinkPHP.PHP");
App::run();
?>
6.1ThinkPHP具备项目目录自动生成功能. 项目目录的Conf下面的config.php是自动生成的配置文件.
6.1模板定义,系统自动生成了Tpl/default目录."<form method='post' action='__RUL__/insert'></form>",表示表单提交到当前模块的insert操作.
7.项目编译
项目编译机制是指系统第一次运行的时候会自动生成核心缓存文件~runtime.php和项目编译缓存文件~app.php,这些编译缓存文件把核心和项目必须的文件打包到一个文件中.
7.1核心编译缓存文件~runtime.php包含的文件有系统的core.php文件决定. 默认生成在项目目录下的Runtime目录下,可以在入口文件中设置RUNTIME_PATH参数:
define('RUNTIME_PATH','/MyApp/temp');
注意在LINUX下要对RUNTIME_PATH目录设置可写权限
7.2项目编译缓存文件~app.php包含项目配置文件和项目公共文件,可通过在项目配置目录下建立app.php文件定义自己的项目编译文件列表.
7.3调试模式下只生成核心编译缓存文件,如果要关闭核心编译缓存文件,设置NO_CACHE_RUNTIME参数:
define('NO_CACHE_RUNTIME',true);
对编译的缓存文件是否去空白和注释操作:
define('STRIP_RUNTIME_ SPACE',True);
8.URL访问, 支持普通模式, PATHINFO模式, REWRITE模式, 兼容模式. 默认为PATHINFO模式.
9.控制器,ThinkPHP的控制器就是一个模块类,位于项目的Lib/Action/目录下,每个模块的操作并非一定要有定义操作方法.
10.模型 ,ThinkPHP的模型类就是Model类.
11.视图,ThinkPHP的视图主要由View视图类和模板文件构成,视图类负责Action控制器类和模板文件之间的沟通.
12.数据库抽象层,把不同的数据库操作封装起来.
13.模板引擎, ThinkPHP内置了ThinkTemplate模板引擎.
--------------------------------构建应用---------------------------------------------
转载地址:http://zfadi.baihongyu.com/