0

我正在使用我自己开发的 PHP 框架,它主要基于 pear 和 Zend 的组件,但最近Composer出现了一些更好的组件

随着我的应用程序越来越多,在组件之间切换变得越来越困难,我想知道是否有一种方法可以让我以不同的方式设计我的程序。在某种程度上,我可以使用与抽象类相反的组件。

我在想应该有一种方法可以让我创建自己的类,而这些类又只是连接到 pear 或 zend 并使用这些类,就像它们使用接口或抽象类一样。当然,他们会做实际的工作,我只会链接到他们。

假设我一直在使用 pear Config/Lite,它只能处理 ini 和数组文件,现在我想切换到 pear config 或 Zend config 以获得将数据保存在数据库中的好处,那么应该有一个简单的在不更改我所有代码的情况下进行切换的方法,因为它们实现的内容完全相同。

我之所以问,是因为我一直在使用 pears Net/URL/Mapper,这还不错,但我发现了一些也可以处理调度的东西,并且正在积极开发中。我也相信这种情况会一次又一次地出现。

4

2 回答 2

2

您想寻找类似外观设计模式的东西,或者只是使用委托/组合。但是请注意,当您添加抽象层时,使用类似外观之类的东西可能会导致大量不必要的复杂性。我建议您阅读一些 php 设计模式,尤其是对象的委托/组合,以了解它如何适合您的情况。

于 2012-07-11T17:21:20.143 回答
1

您应该为此 IMO 使用组合。让你的库中的类公开它们自己的公共接口,你的其余代码都依赖于它。如果您曾经将组件的基础从 PEAR 更改为 Zend,只需确保所有原始公共方法仍然遵循以前的版本,您就应该是金子了。如果您愿意,可以使用关键字将这些接口形式化interface,但这超出了此答案的范围;)

于 2012-07-11T17:22:03.667 回答