我正在做一个包含两个组件的项目:
1)一个是CodeIgniter框架,我将在其中构建我所有的自定义代码。
2)另一个是Amazon针对MWS API的PHP SDK库。
问题是,我的CodeIgniter代码和亚马逊的SDK都需要自己的autoload()。
亚马逊的SDK也被进一步拆分成3-4个组件,每个组件都有自己的autoload功能,所以如果你想使用产品的SDK,然后在同一会话中报告SDK,你会遇到已经定义的autoload函数。
出于这个原因,我正在考虑建立一个web服务系统,用于在我自己的代码和Amazon的SDK文件之间进行通信,即使它们在同一服务器上,但至少这样可以避免命名冲突。也就是说,我将发送一个HTTP请求到CodeIgniter外部的一个文件,它将处理亚马逊的SDK,并返回一个JSON或XML格式的响应。
我不认为命名空间是一种选择,因为我不想遍历SDK中的每个文件/类并添加命名空间语句。
我的问题是,这个方法有没有我应该注意的性能问题?除了名称空间之外,还有什么方法可以避免这种方法吗?
发布于 2013-01-15 02:17:10
只需将它们的自动加载器功能复制到一个单独的文件中,重命名它们,并将它们与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');这是快速,肮脏和我的头顶上的;)
https://stackoverflow.com/questions/14316531
复制相似问题