如何在不更改源的情况下将自定义命名空间应用于外部库?

时间:2017-11-18 17:29:25

标签: php namespaces

是否可以使用具有自定义命名空间的外部PHP库,而无需更改其源?

我想使用名称空间前缀为“ext”的所有外部库。

例如,我希望能够将Predis的Client类实例化为新的ext \ Predis \ Client()而不是新的Predis \ Client()(来自root)。

ps:我正在自动加载所有这样的内部类:

spl_autoload_register(function($class)
{
  $path = str_replace("\\", "/", $class);

  $file = __DIR__ . "/" . $path . ".php";

  require_once $file;
});

1 个答案:

答案 0 :(得分:1)

这是不可能的。命名空间在编译时解析。它也与PSR standards

相矛盾
  

完全限定的类名必须具有顶级命名空间名称,   也被称为“供应商名称空间”。