2014-01-23 44 views
1

我正在使用标准的laravel目录结构。我把这个添加到composer.jsonLaravel psr-0自动加载

"autoload": { 
    "classmap": [ 
     "app/commands", 
      .... 
    ], 
     **"psr-0": { 
     "CARS": "app/" 
     }** 
}, 

我有一个视图

<?php namespace Views; 
class MyView { 

    public function Build() 
    { 
     return "Great !"; 
    } 
} 
?> 

和控制器

class MyController extends \BaseController { 
    public function loadHome() { 
     $view = new \Views\MyView; 
     return $view->Build(); 
    } 
} 

它说类 '视图\ XVIEW' 未找到。

我已经运行作曲家自动加载一次已经与PSR-0一起,但现在我想添加控制器和视图,而无需重新运行作曲家,我相信PSR-0允许我这样做(如果我运行作曲家,它工作顺利)。

回答

0

你需要将其包装成CARS命名空间队友

+0

我曾尝试和改变MyView.php中的命名空间到CARS \ Views但没有喜悦 - 同一个类未找到错误。但是,如果我完全删除命名空间并使用新的\ MyView从控制器中引用它,则它工作正常。 – nchaud

+0

签出Antonios示例。 – sirfilip

4

你基本上不使用PSR-0,而试图使用它...

如果你告诉作曲您有:

"psr-0": { 
    "CARS": "app/" 
} 

它看起来拼命文件

app/CARS/*.php 

和ALS Ø会明白,它的所有文件都是CARS命名空间下:

所以,你的类必须是:

/whatever/application/app/CARS/Views/MyView.php 

而且必须声明为

<?php namespace CARS\Views; 

class MyView { 

    public function Build() 
    { 
     return "Great !"; 
    } 

}