我遇到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();
答案 0 :(得分:1)
在第一个示例中,您使用MyClass \ SimpleClass1 \ Class1。该类的已配置路径为src/MyClass/SimpleClass1/Class1.php
,该路径不存在。 (顺便说一下,使用声明在那里没用)
您的第二个示例显示了MyClass \ SimpleClass1,您可以看到 - 与您的第一个示例不同。