我正在使用一个插件(在这种情况下是Authake),我想覆盖/扩展一些功能,但我不确定我将如何去做这件事。我已经设法弄清楚如何自定义视图(我创建了一个文件夹'/app/views/plugins/authake',但我想知道如何修改/覆盖/扩展插件的模型和组件。
我猜你想扩展模型的功能或插件中的行为?
例如,我们可以扩展Sequence插件中Sequence行为的功能,如下所示:在app/models/behaviors中创建一个新文件,命名为extended_sequence.php
在这个文件中,我们将创建一个ExtendedSequenceBehavior类,它扩展SequenceBehavior并覆盖beforeFind方法。它最终看起来像这样:<?php
/**
* Import the SequenceBehavior from the Sequence Plugin
*/
App::import('Behavior', 'Sequence.Sequence');
/**
* Extended Sequence Behavior
*/
class ExtendedSequenceBehavior extends SequenceBehavior
{
/**
* Overrides the beforeFind function
*/
public function beforeFind(&$model, $queryData)
{
/**
* Do something different here such as modify the query data
*/
/**
* You could still call the original function as well
*/
parent::beforeFind(&$model, $queryData);
}
}
?>
注意,在定义ExtendedBehavior类之前,我们必须先使用Cake的App::import导入Sequence行为。
更新你的模型以使用扩展类:
var $actsAs = array('ExtendedSequence');