2013-05-12 32 views
0

我写一个PHP SMaL公司的MVC框架,我想我的自动加载像clases控制器,型号etc.For为此IAM尝试从Symfony的使用UniversalClassLoader,他只是不会加载类的,当我尝试使用他们,我得到这个错误UniversalClassLoader不加载类

Fatal error: Class 'APP\Libraries\Controller\Controller' not found in /opt/lampp/htdocs/web/globeapi/Bootstrap.php on line 24 

这里的bootstrap.php

require('../libraries/loader/UniversalClassLoader.php'); 
use Symfony\Component\ClassLoader\UniversalClassLoader; 

class Bootstrap 
{ 
    function Bootstrap() 
    { 

    } 

    public static function run() 
    { 
     $auto = require('../config/Auto.php'); 



      $SPL = new UniversalClassLoader(); 
      $SPL->registerNamespace('APP\Libraries\Controller', '../libraries/controller/Controller.php'); 
      $SPL->register(); 



     APP\Libraries\Controller\Controller::test(); 

    } 
} 

这里是Controller.php这样

namespace APP\Libraries\Controller; 

class Controller 
{ 
    function __construct() 
    { 
     echo 1; 
    } 

    public static function test() 
    { 
     echo 1; 
    } 
} 

我也尝试过MapClassLoader,但结果是一样的。

+0

复制? http://stackoverflow.com/questions/16505455/symfony-classloader-wont-load – 2013-05-12 22:04:50

回答

1

我想你只需要注册主命名空间。第二个参数需要是路径而不是文件。也尝试绝对不相对路径。接下来的问题是你的目录是小写的。所以自动加载器对于命名空间APP\Libraries\Controller期待路径LIB_FOLDER/APP/Libraries/Controller。我不知道您是否可以设置将小写转换为大写的别名。但它似乎并不如此。

尝试类似的东西:

$SPL->registerNamespace('APP', __DIR__.'/../LIB_FOLDER');