Laravel psr-0 自动加载

nch*_*aud 1 composer-php laravel-4

我正在使用开箱即用的标准 laravel 目录结构。我已将此添加到 composer.json

"autoload": {
    "classmap": [
        "app/commands",
          ....
    ],
      **"psr-0": {
        "CARS": "app/"
        }**
},
Run Code Online (Sandbox Code Playgroud)

我有一个视图

<?php namespace Views;
class MyView {

    public function Build()
    {
        return "Great !";
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

和一个控制器

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

它说找不到 Class 'Views\XView'。

我已经用 PSR-0 运行过一次 Composer 自动加载,但现在我想添加控制器和视图而不重新运行作曲家,我相信 PSR-0 允许我这样做(如果我运行作曲家,它顺便说一句)。

Ant*_*iro 5

您基本上没有使用PSR-0,而尝试使用它...

如果你告诉 Composer 你有:

"psr-0": {
    "CARS": "app/"
}
Run Code Online (Sandbox Code Playgroud)

它会拼命寻找其中的文件

app/CARS/*.php
Run Code Online (Sandbox Code Playgroud)

并且也会明白它上面的所有文件都在CARS命名空间下:

所以,你的班级必须在:

/whatever/application/app/CARS/Views/MyView.php
Run Code Online (Sandbox Code Playgroud)

并且必须声明为

<?php namespace CARS\Views;

class MyView {

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

}
Run Code Online (Sandbox Code Playgroud)