2014-04-12 45 views
1

我只是測試了現在使用SplAutoloading im將我的應用程序遷移到Symfonies自動加載器。使用Symfony自動加載器

我的應用程序結構是

> Components 
> Models 
    > Core 
     Test.php 
Index.php 

我test.php的是這樣的

namespace Core; 

class Test {  
} 

嘗試加載它在我的index.php

define('__WEB_ROOT__', __DIR__); 

//Symfony Class Loader 
require_once __WEB_ROOT__ . '/Components/ClassLoader/UniversalClassLoader.php'; 

use Symfony\Component\ClassLoader\UniversalClassLoader; 

$oLoader = new UniversalClassLoader(); 
$oLoader->registerNamespaces(
array(
    'Core' => __WEB_ROOT__ . '/Models/Core/' 
) 
); 
$oLoader->register(); 

use Core\Test; 

$oTest = new Test(); 

不知道爲什麼類不能像這樣加載?任何幫助?這裏的正確用法是什麼

回答

0

設置的文件路徑不應包含名稱空間名稱。所以,如果Core\Test位於__WEB_ROOT__/Models/Core/Test.php,你應該註冊Core命名空間__WEB_ROOT__/Models

$oLoader->registerNamespaces(array(
    'Core' => __WEB_ROOT__ . '/Models/', 
));