gpt4 book ai didi

php - Prestashop 1.6,冲突: 2 different modules requiring same class, 不同版本

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:46:21 25 4
gpt4 key购买 nike

在我的 Prestashop 项目中,我有几个模块。在其中一个(我们称之为“AWS”)中,我使用 composer(在 PHPStorm 中)安装了 AWS SDK,如 here 所述。 . Composer 已经“需要”,在其他库中,“guzzlehttp”,更新到它的最终版本。

另一方面,还有另一个模块(我们称它为 “orangeConnect”)也带有 composer,它有一个早期版本的“guzzlehttp”。

问题出在我在 php 中使用 AWS SDK 时,在第一个模块的 php 脚本中。发生的事情是它试图调用 URI Composer 类,但它崩溃了。其实是因为没有一类“UriResolver”。问题是,如果我删除“orangeConnect”,那么 AWS SDK 会正确连接,这意味着“AWS”中的 Uri 类由于“orangeConnect”模块而无法正确获取。但是,我迫切需要在项目中支持“orangeConnect”。

总而言之,我如何解决 Prestashop 中 PHP 类之间的冲突,并允许每个模块包含相应有效版本的 guzzleHttp 无冲突 任何类型?

谢谢。

最佳答案

如果orangeConnect模块的官方维护者不升级代码,那么只有3种方法:

方法 1:您可以维护一份自己的 orangeConnect 代码,并升级到最新的 Guzzle。通常这不会太难,因为 Guzzle 的界面设计得很好。

方法二:获取旧Guzzle的代码,放入新的命名空间(如:OldGuzzle),让orangeConnect使用OldGuzzle命名空间.您可以通过简单地进行全局正则表达式替换来实现这一点。

方法三:(只针对大系统)把你的PHP应用拆分成微服务模块,将orangeConnectAWS SDK隔离开来,使用不同的 Guzzle

关于php - Prestashop 1.6,冲突: 2 different modules requiring same class, 不同版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48385669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com