2014-04-12 42 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/', 
));