Symfony2类加载器loadClass()

时间:2014-02-12 22:35:53

标签: php classloader symfony-components

我遇到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 个答案:

答案 0 :(得分:1)

在第一个示例中,您使用MyClass \ SimpleClass1 \ Class1。该类的已配置路径为src/MyClass/SimpleClass1/Class1.php,该路径不存在。 (顺便说一下,使用声明在那里没用)

您的第二个示例显示了MyClass \ SimpleClass1,您可以看到 - 与您的第一个示例不同。

相关问题