同一台服务器上两个PHP应用程序之间的通信?

时间:2013-01-14 10:16:36

标签: php codeigniter architecture project-planning amazon-mws

我正在开发一个包含两个组件的项目:

1)其中一个是CodeIgniter框架,我将在其中构建所有自定义代码。

2)另一个是亚马逊用于MWS API的PHP SDK库。

问题是,我的CodeIgniter代码和亚马逊的SDK都需要自己的自动加载()。

亚马逊的SDK还进一步分为3-4个组件,每个组件都有自己的自动加载功能,所以如果你想在同一个会话中使用产品的SDK,然后使用Reports SDK,你会遇到已经定义了自动加载功能。

出于这个原因,我正在考虑建立一个Web服务系统,用于我自己的代码和Amazon的SDK文件之间的通信,即使它们位于同一台服务器上,但至少这样可以避免命名冲突。即我将向CodeIgniter外部的文件发送HTTP请求,该文件将处理Amazon的SDK,并以JSON或XML返回响应。

我不认为命名空间是一个选项,因为我不想浏览SDK中的每个文件/类并添加命名空间语句。

我的问题是,我应该注意这种方法有任何性能问题吗?除了命名空间之外,还有什么办法可以避免使用这种方法吗?

1 个答案:

答案 0 :(得分:1)

只需将他们的自动加载器功能复制到一个单独的文件中,重命名它们,然后用spl_autoload_register将它们连接起来:

<?php
function loadFrameworkOne($name) {
    // contents of __autoload from framework one.
}
function loadFrameworkTwo($name) {
    // contents of __autoload from framework two.
}
spl_autoload_register('loadFrameworkOne');
spl_autoload_register('loadFrameworkTwo');

这很快,很脏,并且脱离我的头顶;)