我怎样才能让包含不同版本框架的两个插件都使用最新版本?

时间:2020-01-27 作者:stergosz

我有一个框架1.0版git repo,这是通过我的主插件上的composer所必需的。

一切都很好,但一旦我创建了第二个插件,将使用我的框架的1.1版本,我如何才能使插件a使用与插件B捆绑在一起的最新框架1.1?

换句话说,我需要我的所有插件使用在我的一个插件中找到的最新版本的框架。对于如何在WordPress中实现这一点,我似乎找不到明确的答案。

请记住,无论使用何种黑客/代码,都需要通过WordPress传递。组织人员以激活插件,并且不违反他们的任何规则。

谢谢

1 个回复
SO网友:Vitauts Stočka

这是WordPress和composer的严重问题。无论你做什么,你只是在问未来的问题和/或让插件用户的生活变得艰难。猜猜看,即使您为所有人加载了正确版本的框架your 插件,WP用户可能会在不知不觉中安装其他插件,这些插件也使用相同的框架,但版本完全不同。它可能会先加载,并且与您的插件不兼容。这些插件甚至可能不使用相同的框架,只使用其他一些composer库,但大多数composer库需要许多其他依赖项,这些很容易是冲突的版本。

这是假设的,实际发生这种情况的概率可能很低,因为大多数插件都避免使用composer。但这也是原因。

要更好地理解问题,请阅读this 以及链接/提及的文章。

我的最佳建议是,如果您确实需要使用框架库,只需使用以下工具将其移动到您自己的命名空间php-scoper. 这样,您的每个插件都将使用自己的独立框架(及其依赖项)版本,并且不会与使用composer的任何其他插件发生冲突。

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。