【问题标题】:Integrating two PHP applications which uses same class names, variables names集成两个使用相同类名、变量名的 PHP 应用程序
【发布时间】:2014-02-09 01:43:50
【问题描述】:

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

问题发生在我必须开始在 opencart 页面本身中获取 phpbb 帖子时 我关注了这个话题

wiki.phpbb.com/Practical.Displaying_posts_and_topics_on_external_pages

最后一行包含了phpbb中几乎所有的类/函数

include($phpbb_root_path . 'common.' . $phpEx);

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

谁能告诉我如何集成两个具有通用类名、函数和全局变量的 php 应用程序

我在想如果没有其他工作,我会从 opencart 访问 phpbb 作为 ajax 请求/响应,这样 phpbb 仍然是一个不同的应用程序。例如,发出 ajax 请求以获取帖子(通过将主题 ID 传递给 http url/forum 并读取我从脚本中获得的响应)并将此响应写入 opencart 屏幕

【问题讨论】:

    标签: php integration opencart forum phpbb3


    【解决方案1】:

    这里您可能只有一个选择:让 OC 或 BB 在子文件夹/子域/不同域等中运行。不要像您提到的那样集成它们。

    在 BB 端创建一些自己的 API(这将是最简洁的方式),在另一端创建一个 API 客户端(API 将包含提供所需数据的方法),而不是这样。

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

    【讨论】:

    • 集成两个复杂的软件可能永远不是一个好主意,因为您会遇到一些只会越来越大的复杂问题。按照建议将它们分开,并在真正需要时实现您自己的附加逻辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-19
    • 1970-01-01
    • 2011-03-02
    • 2011-06-01
    • 2010-11-07
    • 1970-01-01
    相关资源
    最近更新 更多