我正在使用一个插件(在本例中为Authake),我想覆盖/扩展一些功能,但我不知道我会怎么做。我已经设法弄清楚如何自定义视图(我创建了一个文件夹'/ app / views / plugins / authake',但我想知道如何修改/覆盖/扩展插件的模型和Compoenents。
答案 0 :(得分:4)
我猜你想要扩展模型的功能或者插件中的行为?
例如,我们可以扩展序列行为的功能,该行为是序列插件的一部分,如下所示:
在app / models / behavior中创建一个新文件,并将其命名为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');