是否可以基于PHP中的命名空间自动加载文件?

izy*_*zym 6 php python namespaces module autoload

标题中提到的内容是否可行?这是Python模块的风格.请参阅此示例,了解我的意思.

的index.php

<?php
use Hello\World;
World::greet();
Run Code Online (Sandbox Code Playgroud)

你好/ World.php

<?php
namespace Hello\World;
function greet() { echo 'Hello, World!'; }
Run Code Online (Sandbox Code Playgroud)

这可能吗?

Gor*_*don 5

是的,看一下spl_autoload_register的例子

namespace Foobar;

class Foo {
    static public function test($name) {
        print '[['. $name .']]';
    }
}

spl_autoload_register(__NAMESPACE__ .'\Foo::test'); // As of PHP 5.3.0

new InexistentClass;
Run Code Online (Sandbox Code Playgroud)

上面的例子将输出类似于:

[[Foobar\InexistentClass]]
Fatal error: Class 'Foobar\InexistentClass' not found in ...
Run Code Online (Sandbox Code Playgroud)

这里是一个链接自动加载磁带机制造商,该

是一个命令行应用程序,用于自动生成自动加载包含文件的过程.