集成两个使用相同类名、变量名的PHP应用程序

集成两个使用相同类名、变量名的PHP应用程序,php,integration,opencart,forum,phpbb3,Php,Integration,Opencart,Forum,Phpbb3,我试图集成opencart和phpbb,但遇到了一些问题 通过集成,我的意思是,当用户登录到opencart或phpbb时,他们会同时登录到这两个站点(这对我来说很好,因为它只涉及在登录到phpbb时在opencart DB中插入相关数据,反之亦然) 问题发生在我必须开始在opencart页面中获取phpbb帖子时 我沿着这条线走 wiki.phpbb.com/Practical.Displaying_posts_和_topics_在_外部_页面上 最后,下面的行包括phpbb中几乎所有的类/函

我试图集成opencart和phpbb,但遇到了一些问题 通过集成,我的意思是,当用户登录到opencart或phpbb时,他们会同时登录到这两个站点(这对我来说很好,因为它只涉及在登录到phpbb时在opencart DB中插入相关数据,反之亦然)

问题发生在我必须开始在opencart页面中获取phpbb帖子时 我沿着这条线走

wiki.phpbb.com/Practical.Displaying_posts_和_topics_在_外部_页面上

最后,下面的行包括phpbb中几乎所有的类/函数

包括($phpbb_root_path.'common..$phpEx)

现在,两者中都有同名的类别(例如缓存、会话、模板) 我重命名了PHP中所有冲突的类以继续,但发现有同名的全局变量。甚至像$db这样的全局变量也有相同的名称 对于普通函数,我只需要小心地删除重复的函数

有人能告诉我集成两个具有通用类名、函数和全局变量的php应用程序的方法吗


我在想,如果没有其他办法,我会从opencart以ajax请求/响应的形式访问phpbb,这样phpbb仍然是一个不同的应用程序。例如,发出一个ajax请求来获取帖子(通过传递主题id来表示http url/forum,并阅读我从脚本中得到的响应),然后在opencart屏幕中写入此响应。在这里,您可能只有一个选择:让OC或BB在子文件夹/子域/不同域中运行,等等。不要像您提到的那样集成它们

相反,在BB端创建一些自己的API(这将是最干净的方式),在另一端创建一个API客户端(API将包含提供所需数据的方法)


另一个解决方案是在OC中实现新模型(可能只是从BB复制),该模型将直接从BB数据库读取数据,以便您可以在OC控制器中调用它们,并以OC的正常方式显示数据。。。这也被认为是干净的解决方案。

集成两个复杂的软件可能永远不是一个好主意,因为您将遇到几个越来越复杂的问题。按照建议将它们分开,并在真正需要时实现您自己的附加逻辑。