如何处理我在 PHP 中扩展的类的不同版本?



约束1:我无法控制A是什么类,也无法控制它来自哪个更大的软件的版本。我必须提交其规则。它没有版本控制,什么都没有,它只是我需要的一个类。我们谈论的是WordPress,所以,这些东西不会被添加到:)

限制 2:我必须按原样发货。我将无法将客户重定向到我的插件V5.1

我正在B内部扩展一个类A,我们现在在version 5.0

class B extends A
{
public function feedback( $string )
}

现在,如您所见,A具有此函数feedback,它只接受一个参数。一切都很好,它应该有效。但是,如果A改变它会发生什么?好吧,升级到version 5.1时,我们的feedback函数如下所示:

public function feedback( $string, ...$args )

一旦我们重新运行代码,我们就会得到Declaration of B::feedback( $string ) must be compatible with A::feedback( $string, ...$args )错误。

我希望我的客户能够在他们软件的几个版本上使用该产品。由于我的产品是一个插件,我必须尊重并尝试使其适用于所有这些版本。

我该如何处理?

如果您正在编写具有依赖项的软件,并且想要支持多个不兼容的版本,那么通常这意味着您还需要制作相同数量的自己的软件版本。

这不一定像您想象的那么难维护。拥有多个活动的 git 分支并不难,适用于每个"目标"的任何更改都可以合并或挑选。

最新更新