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

标签 php codeigniter architecture project-planning amazon-mws

我正在做一个有两个组成部分的项目:

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

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

问题是,我的 CodeIgniter 代码和亚马逊的 SDK 都需要它们自己的 autoload()。

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

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

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

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

最佳答案

只需将它们的自动加载器函数复制到一个单独的文件中,重命名它们,然后将它们与 spl_autoload_register Hook ,这样:

<?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');

这很快,很脏,而且超出了我的头脑;)

关于php - 同一台服务器上的两个 PHP 应用程序之间的通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14316531/

相关文章:

PHP 正则表达式匹配空格

php - 包含地点,父地点,纬度,经度等的免费数据库

active-directory - 使用 PHP 脚本更改 Active Directory 用户密码

php - 在检查 CodeIgniter 中的 post 值之前检查是否设置了参数

architecture - 存储徽章标准的最佳方法?

java - 如何在 Cpanel 中设置 Cron Job?

codeigniter - CodeIgniter事件记录不在字符串中

php - Codeigniter - 自动转义 SQL 查询

architecture - 内存缓存/CDN 在 YouTube 等音乐流媒体网站中的作用?

java - 在哪里、何时以及如何将 DTO 转换为实体/从实体转换