1.相对于以前版本的tp的区别
1-1.读取配置和修改配置的方法变了,没有C方法,取而代之的是Config::get()和Config::set();
Config::get('DB_TYPE' )
Config::set('DB_TYPE' ,'mysql' )
1-2 小写
文件名小写,变量小写,配置小写
2. 关于控制器
2-1 控制器的继承
tp5的控制器可以继承\think\Controller的官方封装好的类,也可以不继承。
继承的好处是可以直接使用官方提供的方法,如think\View和think\Request。如果不继承,则不可以直接调用
2-2 控制器的初始化
继承了官方的Controller类后,可以使用_initialize()方法来完成类的初始化
2-3 前置操作
TODO
2-4 跳转和重定向
和以前版本的tp一样。没什么变化。
2-5 空操作
public function _empty($name)
即使没有继承官方类,只要使用这个方法的话,就可以在找不到操作的时候触发。$name为用户请求的操作,后面的数据不会继续获取了。
2-5 空控制器
Error.php
可以在分组的controller目录新建一个Error.php的控制器,这个控制器的方法会在路由无法匹配到控制器的时候触发
3.请求
3-1 请求信息
$request = request();
$request = Request::instance();
生成一个request对象后,可以很方便的处理请求信息,获取URL信息,设置URL信息,都变得非常easy
3-2 获取变量
Request::instance()->has('id' ,'get' );
input('?get.id' );
tp5把以前的I方法变成了前面两种方式获取变量,有种面向对象过度的感觉
3-3 修改变量
Request::instance()->get(['id' =>10 ]);
3-4 请求类型
Request::instance()->isGet();
3-5 请求伪装
<input type="hidden" name="_method" value="PUT" >
3-6 HTTP头信息
$info = Request::instance()->header();
3-7 伪静态
'url_html_suffix' => 'shtml' ;
3-8 方法注入
TODO
3-9
TODO
4. 数据库
4-1. 配置数据库
和以前版本的配置不同,tp5采用单独的文件配置数据库,文件路径("application\database.php"),而且可以配置多个数据库
4-2.通用操作
Db::query('select * from think_user where id=?' ,[8 ]);
Db::execute('insert into think_user (id, name) values (?, ?)' ,[8 ,'thinkphp' ]);
Db::connect($config )->query('select * from think_user where id=:id' ,['id' =>8 ]);
4-3.详情看官方文档更清楚
点击查看官方文档