Загрузчик классов Symfony2 loadClass()

У меня проблема с компонентом Symfony2 ClassLoader.

Начальный код:

    require_once("vendor/autoload.php");

    use Symfony\Component\ClassLoader\UniversalClassLoader;

    $loader = new UniversalClassLoader();

    $loader->registerNamespace('MyClass', 'src');
    $loader->useIncludePath(true);
    $loader->register();

Структура моей папки:

-src
---> MyClass
-------> MyClass1.php (MyClass \ MyClass1)
-------> MyClass2.php (MyClass \ MyClass2)

Если я пытаюсь включить класс, класс не загружается, например:

use MyClass\SimpleClass1;
$SimpleClass1 = new MyClass\SimpleClass1\Class1();

но если я использую метод loadClass(), работающий:

$loader->loadClass("MyClass\\SimpleClass1");
use MyClass\SimpleClass1;
$SimpleClass1 = new MyClass\SimpleClass1\Class1();

1 ответ

Решение

В первом примере вы используете MyClass\SimpleClass1\Class1. Настроенный путь для этого класса src/MyClass/SimpleClass1/Class1.php, которого не существует. (кстати, оператор использования там бесполезен)

Ваш второй пример показывает MyClass\SimpleClass1, который, как вы можете видеть, отличается от вашего первого примера.

Другие вопросы по тегам