使用与目录结构对应的命名空间名称(绝对和相对)自动加载类

时间:2010-11-28 05:58:05

标签: php namespaces autoload

显然,具有绝对命名空间名称(\ One \ Two \ Three)的自动加载类转换为实际目录路径(One / Two / Three.php)非常简单。

但是,我很好奇是否有任何方法可以自动加载已经实例化(在PHP过程中第一次)使用命名空间名称 relative 到当前命名空间的类(加载两个\三个来自\例如一个。

由于“__autoload”在全局命名空间中执行,并且只接受一个参数(类名,包括命名空间组件),我无法看到它如何知道在哪里查看为了上课。

但是,我假设某个PHP向导找到了解决方案,因为总是按绝对命名空间名称指定类会非常不方便。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您始终可以在自动加载器中获得完整的命名空间:

<?php
namespace {
    function __autoload($class)
    {
        var_dump($class);die();
    }
}

namespace One {
    new Two\Three();
}
?>

输出:

string(13) "One\Two\Three"