了解thinkphp(三)
三、tp的核心配置是 ThinkPHP/Conf/convertion.php,
config.php是我们当前自己项目的配置文件,我们可以通过修改该文件达到配置变量的目录,这个文件在系统运行过程中会覆盖convertion.php的配置变量
convertion.php里面主要内容:应用设定,Cookie设置,默认设定,数据库设置,数据缓存设置,错误设置,日志设置,SESSION设置,模板引擎设置,布局设置,URL设置,系统变量名称设置
四、MVC
C:控制器 Controller,MVC的核心
如果自己要建一个Login控制器:
- 在\Shop\Home\Controller文件夹下新建一个控制器文件LoginController.class.php
2.打开该文件,在里面造控制器Login类
3.如果要自定义操作方法,在控制器Login类里面加一个函数Login():
这样我们就完成了控制器和操作方法的建立,如果要访问我们刚才的Login控制器下的Login方法:
4.控制器中如果要调用视图层中的模板:
V:视图view
视图模板文件存放发位置在:
里面没有模板文件,如果我们想要访问Login控制器中的Login方法,首先我们要创建一个Login控制器对应的模板文件夹,该文件夹就对应着Login控制器:
然后在Login文件夹下再创建一个login.html的模板文件来对应Login控制器下的Login方法:
在login.html里面写入要显示的代码:
再次请求:
M:模型Model
a) model本身就是一个类文件 b) 数据库中的每个数据表都对应一个model模型文件 c) 最简单的数据model模型类
实例化Model的三种方式:
1.$goods = new \命名空间\Model \GoodsModel ( );
注意: 这种方法必须在模板中造GoodsModel.class.php类,如果没有会报错. 这里是路径所以是反斜杠,区别跨控制器调用
2.$goods = D(‘模型名称’);
a) $goods = D(“Goods”);
b) 该$goods是父类Model的对象,但是操作的数据表还是sw_goods
c) $obj = D(); 实例化Model对象,没有具体操作数据表,与M()方法效果一致
3.$obj = M(“模型名称”);
a) 实例化父类Model
b) 可以直接调用父类Model里边的属性,获得数据库相关操作
c) 自定义model就是一个空壳,没有必要实例化自定义model
d) $obj = M(‘数据表标志’); 实例化Model对象,实际操作具体的数据表
D()和M()方法的区别:
前者:首先调用Model里面类文件,若没有就查找数据库表。换句话说,D()方法是new操作的简化方法;
后者:不需要model自定义模型文件,直接查数据库表,实例化出model类;