Можно ли автозагрузить файл на основе пространства имен в PHP? - PullRequest
6 голосов
/ 26 марта 2010

Возможно ли то, что упомянуто в названии? Стиль модуля Python, который есть. Посмотрите на этот пример, что я имею в виду.

index.php

<?php
use Hello\World;
World::greet();

Hello / World.php

<?php
namespace Hello\World;
function greet() { echo 'Hello, World!'; }

Возможно ли это?

1 Ответ

5 голосов
/ 26 марта 2010

Да, посмотрите на пример 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;

Приведенный выше пример выведет что-то похожее на:

[[Foobar\InexistentClass]]
Fatal error: Class 'Foobar\InexistentClass' not found in ...

Вот ссылка на конструктор автозагрузки , который

- это приложение командной строки для автоматизации процесса создания включаемого файла автозагрузки.

...