0

如果您阅读了有关创建插件的 CakePHP 文档。它清楚地说明了PluginAppModel和基类是从和PluginAppController类扩展而来的。使用插件在应用程序中实现。AppModelAppController

这对我来说似乎非常冒险。

插件无法控制应用程序可能在这些基类中配置的回调、组件、助手等。

PluginAppModel让您的/PluginAppController仅扩展 CakePHP 库中的基类是否有任何问题。喜欢ModelController

有人可以解释为什么插件应该扩展这些应用程序特定类的逻辑吗?

4

1 回答 1

2

无论您做什么,都应从继承链中排除 App* 类,或者是否包含它们。总会有可能失败的地方,因为人们在这些课程中所做的事情是不可预测的。

不太可能的情况是,如果您扩展 App* 基类而不是不扩展它们,那么您的插件会出现问题。

Auth 和 Session Component 在控制器的情况下是您应该扩展 App* 类的一个很好的理由。AppModel 中的行为是另一个。

如果您的插件依赖于 Controller 或 Model 类的某个属性的某个未更改的状态,我认为您在构建该插件时做错了。最好通过提供配置选项或检查继承属性和附加组件和行为的状态来保持插件的灵活性。

如果您的插件中确实存在缺陷 - 我仍然认为它做错了 - 您应该记录它,以便阅读文档的人可以正确集成它。

于 2013-02-03T20:00:25.460 回答