ThinkPHP:特殊方法

有句话说的很好,因为有你,所以精彩。ThinkPHP的精彩不仅仅在于实现了整个框架模式,而是因为某些细节筑就了ThinkPHP的特殊。我注重细节,是因为就框架而言自身是不实用的,因为它仅仅是一个办成品,而为应用和用户考虑才是有价值的。
了解ThinkPHP,你除了了解整体架构思想外(因为思想是框架的灵魂,不了解思想你寸步难行),你还应该去熟悉ThinkPHP为您准备的特色小点(特殊方法),要不然你就错过了很多有效提高开发效率的机会。

下面介绍下ThinkPHP中使用的特殊方法。

通用前置和后置操作
在ThinkPHP中,你可以给任何一个操作定义前置和后置操作方法。
前置操作的定义就是在当前操作方法的前面添加_before_前缀,而后置操作的定义就是在当前操作方法的前面添加_after_前缀。
例如,我们已经给UserAction定义了一个del操作方法,我们可以定义:


_before_del() 在del操作之前执行

_after_del() 在del操作之后执行(del操作正常执行完毕)


表单数据前置处理方法
另外,如果使用系统内置的insert和update操作的话,会首先检查是否存在_operation方法,这个方法是系统在表单提交时候的默认前置操作。
_operation方法没有任何参数,主要是用来检测表单的提交数据。
在insert或者update执行完毕后,系统会检查是否存在_trigger方法,这个方法是系统默认的数据更新触发器方法。
_trigger方法只有一个参数,也就是要保存的Vo对象。

列表过滤方法
如果你使用系统内置的index方法,系统还会检查_filter方法,该方法负责对列表数据进行过滤,当你的列表需要针对不同的用户进行判断和过滤的时候,这个方法非常有效。

空操作定义
如果指定的操作没有定义,系统会尝试寻找_empty方法,如果存在,就会执行该空操作方法。否则会抛出异常。

初始化方法
在你的Action和Dao类里面可以定义_initialize方法,会在任何操作之前调用。

表单验证方法
如果在Action里面定义了_validation方法,就会在执行方法的时候进行相关验证。

当然,很多的自动化操作和定义不在这个特殊方法范畴之内。ThinkPHP还有更多的细节值得你去挖掘和借鉴~

posted on 2012-06-12 09:50  Roc ps'king  阅读(513)  评论(0编辑  收藏  举报

导航