2014-02-12 64 views
-1

我有Symfony2 ClassLoader組件的問題。Symfony2 Class Loader loadClass()

開始代碼:

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

這個'SimpleClass1'的東西來自哪裏?我看到的只有'MyClass \ MyClass1'和'MyClass \ MyClass2' – Phil

回答

1

在你的第一個例子,你使用MyClass \ SimpleClass1 \ Class1。該類的配置路徑爲src/MyClass/SimpleClass1/Class1.php,該路徑不存在。 (順便說一下,使用語句在那裏是沒用的)

你的第二個例子顯示MyClass \ SimpleClass1,你可以看到它與第一個例子不同。

相關問題