在数据模型中提供了插件机制来扩展数据的处理。需要注意的是:
1、插件是针对模型实现的,一个模型可以有多个插件,但一个插件只能在一个模型中使用。
2、在插件这里所提到的模型类名为数据模型的类命名。如,数据模型guestbook,前台的完整类名为 model_guestbook,后台模型的完整类名为 model_admin_guestbook。
模型的插件存储在目录:
./apps/应用名称/plugin/模型类名/
每个模型的插件目录里有一个配置文件,其中配置了所有的插件名称和插件中实现的方法。
配置文件路径为:
./apps/应用名称/plugin/模型类名/config.php
配置文件格式说明:
return array(
'插件名称1'=>array('方法1', '方法2', '方法N'),
'插件名称2'=>array('方法1', '方法2', '方法N'),
);
插件文件命名:
./apps/应用名称/plugin/模型类名/插件名称.php
插件的定义:
class plugin_插件名称 extends object
{
private $model;
public function __construct(& $model)
{
$this->model= $model;
}
/** 定义N个方法 **/
}
一个插件独立来讲只是一个普通的PHP类文件,但他接收了来自模型的数据传递,从而实现了对模型数据处理的扩展。
其中 $model接收了自来模型的传递,$model是模型对象的引用,在插件的方法中操作$model就等于操作了模型中的数据。
执行说明:
如果在模型中执行了一个插件方法,系统将扫描该模型的插件配置,将所有实现该方法的插件都执行一次。
根据这个规则,给一个模型创建多个插件,在模型中一次调用,即可以达成多个目的。