如果我有相同的第三方库(或类)的不同版本,它们当然具有相同的命名空间和类名。有没有办法将它们包含在同一个项目中以避免名称冲突?
当我们有一个单独开发组件的模块化项目时,会发生此问题的另一种情况。所以我们可以有不同的模块,在它们自己的文件夹中包含相同的外部库文件,但是当模块被加载时,我们当然会发生类冲突。
在这篇文章中加载同一个类的多个版本
用户建议使用此代码:
namespace old {
include /lib/api-1.0/library.php;
}
namespace foo {
include /lib/api-2.0/library.php;
}
$oldlibary = new old\Library();
$newlibrary = new foo\Library();
但当然它不起作用。类无论如何都会发生冲突,因为它们被声明为全局而不是变量。
那么..是否有另一种解决方案不是手动编辑要包含的所有库的名称空间?
提前致谢