Manual
6.4 模型扩展
ThinkPHP的新版模型具有很好的扩展性,对模型的CURD方法都提供了扩展接口。
模型类提供了多个回调接口,主要扩展接口如下:
全局接口:
初始化接口 _initialize()
表达式过滤接口 _options_filter(&$options)
add方法接口:
写入前置接口 _before_insert(&$data,$options)
写入后置接口 _after_insert($data,$options)
save方法接口:
更新前置接口 _before_update(&$data,$options)
更新后置接口 _after_update($data,$options)
同时对add和save方法的接口:
数据写入(包括写入和更新)数据库之前的处理接口 _facade($data)
delete方法接口:
删除后置接口 _after_delete($data,$options)
select(findall)方法接口:
查询后置接口(数据集) _after_select(&$result,$options)
find方法接口:
查询后置接口 (数据) _after_find(&$result,$options)
系统内置的高级模型AdvModel、视图模型ViewModel和关联模型RelationModel本身就是一个模型扩展的很好的例子,本身都是继承Model类并且都通过了扩展实现很多的功能。
