我正在开发一个 CakePHP 应用程序,我们将把它作为白标提供给人们为他们自己的公司实现,他们需要为自己提供某些定制能力。
对于初学者,他们可以对视图做任何他们想做的事情,如果他们需要添加全新的东西,他们可以添加自己的控制器/模型。但是,我宁愿建议不要触摸我的控制器和模型,以使版本升级更容易。
从本质上讲,我计划为他们提供的自定义功能将是非常基本的,我只需要在某些事情发生时调用“某事”,这样他们就可以执行更新外部系统、给自己/客户发送电子邮件等事情,像这样的东西。
我想知道最好的方法是什么?
我的计划是为我的每个控制器创建一个“文件”(一个类),以使事情合理组织。这个文件将有一堆我的代码将调用的空方法,他们将能够在这些方法中添加代码来做他们需要做的任何事情。
具体的问题是,这个满是空方法的类应该是一个Component吗?控制器?只是一个普通的普通 PHP 类?
我需要从我的控制器中调用这个类中的方法,所以我猜它是一个控制器是不可能的(除非它是一个从我的控制器继承的控制器?或者我的可能是从他们的继承的)。另外,我需要这些方法的实现者才能访问我的模型和组件,尽管我可以让它们使用 App::Import,但我不需要设置神奇的 $this->ModelName 成员.
另外,我创建的这个文件(组件或控制器)是否必须位于其他(我的)控制器/组件旁边的 app 文件夹中?或者我可以把它扔到单独的地方,比如供应商文件夹吗?
你以前做过这样的事情吗?
任何要避免的提示/建议/陷阱都将受到欢迎。
我知道这有点主观,如果你以前做过,我主要想听听你的经验。
谢谢!