2014-10-29 80 views
1

我管理我们内部定制的公共域PHP应用程序。它可以使用很多其他人编写的插件/等等。所有这些都可以获得更新。PHP - 如何在PHP中为PHP应用程序编写代码修补程序?

是否有可能编写一个独立的修补工具,在核心应用程序和插件等更新后重新整合我们的定制代码?如果是的话,那可能是一个好的解决方案?我完全可以将定制代码块单独保存在一个单独的位置,以供此“工具”查找和使用。

+0

*“有可能吗?” - - 可能是这样,是的。这是最好的方式吗?可能不会。我会看看VCS如何实现自动合并;然后意识到100%的自动合并实际上是不可能的,人们总会看到结果。 – deceze 2014-10-29 06:55:10

+1

考虑使用模块作为分离的包,并允许它们覆盖您的方法 – michaelbn 2014-10-29 07:01:42

回答

2

有一些替代方式来实现这一目标:

  • 传统:您可以使用GNU diff/patch工具来创建自定义版本和香草版本之间的差异补丁文件,安装更新,然后将补丁应用到现在更新的补丁。继承:假设应用程序使用的是OOP范例,而不是修改核心应用程序类,那么您可以使用自己的类来扩展类,这样您的自定义项可以与核心文件保持隔离,因此当您更新应用程序,其核心将被更新和自定义设置保持不变

  • 缓存:您可以实现类似Opencart的的vQmod,通过动态创建合并版本作为缓存.php文件被运行,而不是合并您的自定义到核心软件功能原来的核心部分,这样你就可以在不改变原始的情况下运行改变的核心。

+0

接受此答案。基于这三个回复以及我们从其他来源获得的更多信息,我们决定实施基于源代码控制的差异/修补。这不是100%的自动,是的(这是理想),但它可以让我们做到这一点比完全手动完成更便宜。 – 2014-10-29 13:53:40