CakePHP重写插件方法

CakePHP重写插件方法,cakephp,cakephp-2.4,Cakephp,Cakephp 2.4,我正在CakePHP项目中使用CakeDC标记插件。我正在使用输出链接列表,但此帮助程序没有按我希望的方式格式化链接。具体来说,\u tagUrl($tag$options)方法是使用命名参数而不是使用查询字符串生成链接 而不是 $options['url'][$options['named']] = $tag[$options['tagModel']]['keyname']; 我通过以下更改获得所需的行为 $options['url']['?'][$options['named']] = $

我正在CakePHP项目中使用CakeDC标记插件。我正在使用输出链接列表,但此帮助程序没有按我希望的方式格式化链接。具体来说,
\u tagUrl($tag$options)
方法是使用命名参数而不是使用查询字符串生成链接

而不是

$options['url'][$options['named']] = $tag[$options['tagModel']]['keyname'];
我通过以下更改获得所需的行为

$options['url']['?'][$options['named']] = $tag[$options['tagModel']]['keyname']; 

覆盖此方法的最佳实践方式是什么?我是否创建了另一个扩展TagCloudHelper的类?那么,我该如何告诉CakePHP使用我的类而不是插件的类呢?

我能够用自己的类覆盖助手

// app/View/Helper/MyTagCloudHelper.php
App::uses('TagCloudHelper', 'Tags.View/Helper');

class MyTagCloudHelper extends TagCloudHelper {
    protected function _tagUrl($tag, $options) {
        $options['url']['?'][$options['named']] = $tag[$options['tagModel']]['keyname'];
        return $options['url'];
    }
}
然后在控制器中

public $helpers = array('TagCloud' => array('className'=>'MyTagCloud'));
className选项允许您为帮助者的名称添加别名