ThinkPHP 3.2.3版本 一、命名空间(注意:命名空间定义必须写在所有的PHP代码之前声明,而且之前不能有任何输出,否则会出错) namespace Home\Controller; 这是系统的规范要求,表示当前类是Home模块下的控制器类,命名空间和实际的控制器文件所在的路径是一致的, 也就是说: Home\Controller\IndexController类 对应的控制器文件位于应用目录下面的 Home/Controller/IndexController.class.php, 如果你改变了当前的模块名,那么这个控制器类的命名空间也需要随之修改。 use Think\Controller; 表示引入 Think\Controller 类库便于直接使用。 二、好习惯 遵循框架的命名规范和目录规范; 开发过程中尽量开启调试模式,及早发现问题; 多看看日志文件,查找隐患问题; 养成使用I函数获取输入变量的好习惯; 更新或者环境改变后遇到问题首要问题是清空Runtime目录; 三、命名规则 函数的命名使用小写字母和下划线的方式 方法的命名使用驼峰法,并且首字母小写或者使用下划线“_”, 属性的命名使用驼峰法,并且首字母小写或者使用下划线“_” 以双下划线“__”打头的函数或方法作为魔法方法 常量以大写字母和下划线命名 配置参数以大写字母和下划线命名 语言变量以大写字母和下划线命名 四、URL访问模式(可以使用路由设置你喜欢的路径) http://serverName/index.php (或者其他应用入口文件)/模块/控制器/操作/[参数名/参数值...] 新版采用模块化的设计架构,下面是一个应用目录下面的模块目录结构,每个模块可以方便的卸载和部署,并且支持公共模块。 Application 默认应用目录(可以设置) ├─Common 公共模块(不能直接访问) ├─Home 前台模块 ├─Admin 后台模块 ├─... 其他更多模块 ├─Runtime 默认运行时目录(可以设置) 每个模块是相对独立的,其目录结构如下: ├─Module 模块目录 │ ├─Conf 配置文件目录 │ ├─Common 公共函数目录 │ ├─Controller 控制器目录 │ ├─Model 模型目录 │ ├─Logic 逻辑目录(可选) │ ├─Service Service目录(可选) │ ... 更多分层目录可选 │ └─View 视图目录 五、CURD是什么意思 增: Create 对应的方法是add() 改: Update 对应的方法是save() 查: Read 对应的方法是select() 删: Delete 对应的方法是delete() 六、在模板中输出变量 例: 在控制器中写 $name = 'ThinkPHP'; $this->assign('name',$name); $this->display(); 模板中写 Hello,{$name} 输出 Hello,ThinkPHP 七、可以方便的实现模板布局以及布局嵌套功能。 有三种布局模板的支持方式 1、第一种方式:全局配置方式 这种方式仅需在项目配置文件中添加相关的布局模板配置,就可以简单实现模板布局功能, 比较适用于全站使用相同布局的情况,需要配置开启LAYOUT_ON 参数(默认不开启), 并且设置布局入口文件名LAYOUT_NAME(默认为layout)。 例1: 配置文件写: 'LAYOUT_ON'=>true, 'LAYOUT_NAME'=>'layout', layout.html写 <include file="Public:header" /> {__CONTENT__} <include file="Public:footer" /> 2、第二种方式:使用layout控制模板布局 使用内置的layout方法可以更灵活的在程序中控制模板输出的布局功能, 尤其适用于局部需要布局或者关闭布局的情况,这种方式也不需要在配置文件中开启LAYOUT_ON。 例1: 表示当前的模板输出启用了布局模板,并且采用默认的layout布局模板 namespace Home\Controller; use Think\Controller; Class UserController extends Controller{ Public function add() { layout(true); $this->display('add'); } } 例2: 或者使用layout方法动态关闭当前模板的布局功能(这种用法可以配合第一种布局方式,例如全局配置已经开启了布局,可以在某个页面单独关闭) namespace Home\Controller; use Think\Controller; Class UserController extends Controller{ Public function add() { layout(false); // 临时关闭当前模板的布局功能 $this->display('add'); } }