Действительно ли возможно автоматически загрузить файл на основе пространства имен в PHP?

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

index.php

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

Hello/World.php

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

Это было бы возможно?

6
задан izym 26 March 2010 в 11:20
поделиться

1 ответ

Да, взгляните на пример 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 ...

Вот ссылка на Autoloader builder, который

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

5
ответ дан 17 December 2019 в 04:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: