5

Laravel4がいくつかのPSR標準を使用していることに気づきました。私は最近、PHPコーディング標準に準拠したいときにほとんどの問題を検出して修正するSensioLabsツールphp-cs-fixerをインストールしました。

ベアのLaravel4コピーでコマンドを実行しましたが、これがログです。

php-cs-fixer fix app/
! Class User in /home/javier/Code/laravel/app/models/User.php should have at least a vendor namespace according to PSR-0 rules
! Class DatabaseSeeder in /home/javier/Code/laravel/app/database/seeds/DatabaseSeeder.php should have at least a vendor namespace according to PSR-0 rules
! Class HomeController in /home/javier/Code/laravel/app/controllers/HomeController.php should have at least a vendor namespace according to PSR-0 rules
! Class BaseController in /home/javier/Code/laravel/app/controllers/BaseController.php should have at least a vendor namespace according to PSR-0 rules

出力には、自動読み込み標準PSR-0に関連するいくつかの問題が表示されます。
何が起きてる ??

助けていただければ幸いです。

4

1 に答える 1

5

github laravelトラッカーで問題を報告した後、 @javiervdの好意で素晴らしい応答を受け取りました。

これが答えです

問題は、「app」フォルダー内のクラスがPSR-0に従わないことです。そのため、コンポーザーオートローダーはPSR-0ではなくクラスマップを使用します。

@daylereesを引用するには

今、あなたは自分自身に問いかけているかもしれません、なぜLaravelはこれをデフォルトで設定しないのですか?

Laravelはあなたのプロジェクトが何と呼ばれているのか、そしてルート名前空間が何であるのかを知りません。これはゼロ構成フレームワークです。つまり、箱から出してすぐに機能するはずです。その場合、クラスマッピングが最も賢明な選択です。

それは非常に理にかなっています。

于 2013-02-14T10:08:36.017 に答える