2014-01-23 45 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 !"; 
    } 

}