Php 如何将自定义命名空间应用于外部库而不更改其源?
是否可以使用带有自定义名称空间的外部PHP库,而不更改其源代码 我想使用名称空间前缀为“ext”的所有外部库 例如,我希望能够将的客户端类实例化为new ext\Predis\Client(),而不是new Predis\Client()(从根目录) 注:我正在自动加载所有内部类,如下所示:Php 如何将自定义命名空间应用于外部库而不更改其源?,php,namespaces,Php,Namespaces,是否可以使用带有自定义名称空间的外部PHP库,而不更改其源代码 我想使用名称空间前缀为“ext”的所有外部库 例如,我希望能够将的客户端类实例化为new ext\Predis\Client(),而不是new Predis\Client()(从根目录) 注:我正在自动加载所有内部类,如下所示: spl_autoload_register(function($class) { $path = str_replace("\\", "/", $class); $file = __DIR__ .
spl_autoload_register(function($class)
{
$path = str_replace("\\", "/", $class);
$file = __DIR__ . "/" . $path . ".php";
require_once $file;
});
这是不可能的。名称空间在编译时解析。这也与以下观点相矛盾: 完全限定类名必须具有顶级命名空间名称, 也称为“供应商名称空间”
更好的主意。。。。更改Predis包装器使用的任何名称空间,而不是尝试更改第三方名称空间