我使用CakePHP 2.1内,我需要调用组件的方法女巫驻留在一个插件,从一个视图助手:CakePHP的调用组件的方法的辅助
该组件是在这里:
/应用/插件/ ABC /控制器/组件/ AbcComponent.php
助手是在这里:
/app/View/Helper/SimpleHelper.php
我想里面帮手:
App::import('Component', 'Abc.Abc');
$this->Abc = new Abc(); or $this->Abc = new AbcComponent;
或
$this->Abc = $this->Components->load('Abc.Abc');
这个组件使用没有问题的控制器内。 我知道这不是建议(MVC设计等),但如果我不这样使用它,我需要复制大量的代码。我需要这样的:
MyHelper extends Helper{
$simpleVar = Component->get_data();
}
这个解决方案是好的,但我需要那么从助手调用组件。不是组件的帮手。所以我需要:$ varInsideHelper = Compoent-> giveSomeData(); – cornelv
你好,关键是你不应该从助手调用组件。事实上,我之前做的方式在CakePHP中不再允许。你可以尝试ClassRegistry :: init('ComponentName');我不确定这是否会以您需要的方式工作,但可能。 –
如果您认为您需要从助手调用组件,那么您的软件存在严重的体系结构问题,您应该重新考虑您的操作以及操作方法。 – burzum