我有一個非常大的AppController。近75個函數和130千字節。這似乎會減慢我的系統。因此,我需要將這些函數放入另一個文件中,並在其他控制器需要時包含該文件。CakePHP創建組件或其他控制器
選項正在創建新的controller或新的component。我正在嘗試做出選擇。優點或缺點是什麼?
我的要點是:
- 我不打算使用其他項目中這些功能。這些功能只會被這個項目使用。
在我的AppController中,我使用這些文件,模型,組件。所以他們應該可以通過新的結構訪問。
App::import('Vendor', 'MyFancyVendor', array('file' => 'MyFancyVendor.php')); App::uses('CakeEmail', 'Network/Email'); public $uses = array('Mytable1', 'Mytable2', 'Mytable3', 'Mytable4'); public $components = array('Session'); public $helpers = array('Session','Html');
編輯:雖然使用一個巨大的新的控制器/組件看起來與老結構相同,不同的是:說出來MyController12和MyController13不使用內部AppController的這些巨大功能的方法。但是由於MyController12是從AppController創建的,它會加載它不需要的模型,組件和其他東西。如果我將這些邏輯放在AppController之外,MyController12將不會加載所有的邏輯。
關於MVC,你的想法是最好的。但是這似乎是一個非常大的重構工作。我打算在我的新CakePHP項目中使用這種模式。但是對於創建庫的這個項目來說,助手和添加模型函數會花費太多時間。雖然我不喜歡我會選擇控制器或組件的選項之一。我真的不打算在其他項目中使用這些方法。 – trante
@trante,你要求最好的解決方案。最佳解決方案通常需要一些工作如果你只是不介意,然後將你的邏輯劃分在其他控制器中,並將它們包含進來。我最好的建議再次提出?打你懶惰:如果你足夠的關心,你會重構。 – Shoe