Загрузчик классов 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, который, как вы можете видеть, отличается от вашего первого примера.