我使用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