ThinkPHP5使用注意事项

TP5.0使用手册地址:http://www.kancloud.cn/manual/thinkphp5/118003

1.变量过滤,框架默认没有对输入的变量任何过滤,所以需要在config自己配置过滤方式。

框架默认没有设置任何过滤规则,你可以是配置文件中设置全局的过滤规则:

// 默认全局过滤方法 用逗号分隔多个
'default_filter'         => 'htmlspecialchars',

2.可以使用PHP内置的校验:

Request::instance()->post('email','',FILTER_VALIDATE_EMAIL);

3.获取请求变量的进行过滤,变量修饰符

input('get.id/d');
input('post.name/s');
input('post.ids/a');
Request::instance()->get('id/d');

tpxiushifu

4.获取请求时方法注入:

如果你需要在Request请求对象中添加自己的方法,可以使用Request对象的方法注入功能,例如:

// 通过hook方法注入动态方法
Request::hook('user','getUserInfo');

getUserInfo函数定义如下

function getUserInfo(Request $request, $userId)
{
    // 根据$userId获取用户信息
    return $info;
}

接下来,我们可以直接在控制器中使用:

public function index()
{
    $info = Request::instance()->user($userId);
}

5.系统自定义异常捕捉(路由、控制器、方法不存在等),统一异常拦截和显示错误画面。

6.请求缓存设置http://www.kancloud.cn/manual/thinkphp5/215850

V5.0.3+版本增加了请求缓存自动判断,只需要在配置文件中开启:

'request_cache'    =>  true,
'request_cache_expire'    =>  3600,

就会自动根据当前请求URL地址(只针对GET请求类型)进行请求缓存,全局缓存有效期为3600秒。

7.控制器预前处理和事后执行的功能

预前处理:可以设置所有控制器执行器的配置或预处理功能,比如继承的父模板(布局模板)等;

事后执行:特定业务的执行。

8.自定义模板(助手)函数:

template可以使用包含(include文件包含)和替换(block区块替换,类似twig)

9.数据连接封装一层应用层,容易使用而且可以动态切换数据库。

 

 

 

One Comment

Leave a comment