有在thinkphp3.1.3版本的一些特点,这是值得注意的。

1、异常方面的改善

新版本的thinkphp3.1.3重写的异常类thinkexception(这是完全简化为直接继承制度异常类),提高了异常逻辑的认为类。它主要关注的是appexception方法和停止功能的思考类。

和改进的异常处理支持系统的致命错误捕获,认为类增加的致命错误的方法和原理应用。


register_shutdown_function(阵列('think ','fatalerror '));




因此,系统的致命错误可以由一个统一的异常模板接口提示。

2。PDO参数绑定支持

因为thinkphp3。*版本使用的混合数据库驱动程序,并且还支持PDO模式。但以前的版本没有优化PDO,只是一个简单的封装,3.1.3版本改善了PDO和sqlarv的支持,因为PDO和sqlsrv支持参数绑定操作(注意,数据库和驱动程序不支持参数绑定不能使用参数绑定功能)。

系统对参数绑定操作的支持分为两种类型:自动绑定和手动绑定。

自动绑定进行写操作(包括数据的添加和更新),框架会自动将数据转化为执行参数的结合模式,这部分不需要额外的治疗,因为sqlsrv仅使用参数绑定模式价值支持UTF8数据写入,但每次数据写入手册参数绑定的话,会麻烦。为了避免手动参数约束冲突,自动参数结合使用域名MD5编码方式。

手动绑定,通常用于查询条件,并使用绑定一致的操作,如:


$模型->哪里(阵列('id' = >:ID,'name' = >:名字))->绑定(array(':ID = > $ ID:名字= > $name))->选择();






三.增加变量安全获取的方法

以前的版本用行动_post _get等方法来获得变量的安全,虽然没有问题,但限制是它们只能在控制变量。函数的新版本独立于快捷方式i,它可以应用于任何地方。

该方法的使用如下:


我('。ID,0); / /获得$ _get { 'id' }如果没有默认是0
我('post。名称,'htmlspecialchars '); / /获得$ _post { 'name' }使用htmlspecialchars滤波方法
我('id'); / /获得ID参数自动确定GET或POST
我('param。ID);/ /获得ID参数自动确定GET或POST以上使用等效
我(把我'); / /获得ID参数提出要求




它还支持获取整个数组,例如:


我(' '); / /获得$ _get阵列
我('post。'); / /获得$ _post阵列




在使用我的方法的情况下,该var_filters和系统default_filter滤波器配置仍然有效。

4的多重调用,方法

模型类的WHERE方法可以支持数组模式中的多个调用,例如:


$模型->哪里(阵列(A =>1,C = > 2))->哪里(阵列(A =>3,B = > 1))->选择();




当多个条件给定时,下列条件将合并到先前的条件中,最后条件等于:


$模型->哪里(阵列(A =>3,B =>1,C = > 2))->选择();






5。控制器中的赋值方法支持相干操作

我们可以在控制器中使用它:


美元->分配('name',$name)->分配('email',$电子邮件)->显示();




或:


美元->分配(阵列('name' = > $name,'email' ' = > $电子邮件))->显示();