PHP网站的几个副本带有调整:最大化代码重用并最大限度地减少重复?

时间:2010-01-22 16:41:15

标签: php smarty

很抱歉这个令人困惑的标题......

我们正在开发一个供多家公司使用的应用程序。在大多数情况下,应用程序是相同的,您为其设计的数据定制的标准数据库操作页面(搜索页面,编辑页面等)。

但是,每家公司的流程略有不同,我们将直接与每家公司打交道,因此我们希望使用某种系统,以便我们根据查看页面的公司来调整页面。例如,一家公司可能希望在数据输入页面上添加一些额外的字段,或者另一家公司可能希望在搜索结果屏幕上查看不同的数据,依此类推。

我明白这都是假设,我希望我有一个具体的例子可以给你,但说实话,公司甚至没有给我们很好的例子。我们只是想做好准备。

所以我的基本问题是,在每个公司的基础上允许进行这些调整和自定义的最灵活方式是什么?显然,最灵活但程序最友好的方式是为每个公司制作完整的应用程序副本。这显然不是一个选项,因为我们需要管理所有站点上的更新代码,试图让它们全部运行和测试,并且由于自定义代码而产生问题。

您对Smarty解决此问题有什么看法?也许如果我们有一套主模板,但是每个公司可以有一个不同的子文件夹和任何替换模板文件......当然,每当我们改变其中一个时,我们仍然需要更新一堆不同的模板文件,但是无论如何,它会更加局部化。

有更好的方法吗?可能有某种差异模板引擎,因此我们仍然可以编辑原始文件,并且更改将在原件之上进行调整(类似于补丁)?或许我们应该使用PHP5的面向对象功能然后使用多态?你最好的建议是什么,特别是如果你有这方面的经验,有哪些选择,你使用过哪些以及为什么?

2 个答案:

答案 0 :(得分:1)

我认为template method pattern会帮助你很多。它实际上是一个很好的模式,用于分解大部分相同但在一些地方不同的东西。我现在正在为自己的项目制定模板方法层次结构。

答案 1 :(得分:1)

我建议你尝试使用mvc framework或使用自己的mvc实现来创建应用程序。

通过这种方式,您可以为其他公司创建可以重复使用的模型(以及视图)。