我有一个非常大的 AppController。近 75 个函数和 130 KB。这似乎减慢了我的系统。因此,我需要将这些函数放在另一个文件中,并在其他控制器需要时包含该文件。
选项是创建一个新的控制器或一个新的组件。我正在尝试做出选择。有什么优点或缺点?
我的观点是:
- 我不打算在另一个项目中使用这些功能。这些功能只会被本项目使用。
在我的 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 将不会加载所有这些逻辑。