2016-08-02 8 views
0

は、私はいくつかのComposerオートローディングの周り少し遊びを持ってきたし、ディレクトリ構造が私のcomposer.json I持って、次のPSR4作曲Autloadingは

"autoload": { 
     "psr-4": { 
      "App\\": "app/" 
     } 
    } 
インサイド

index.php 
app/ 
    helpers/ 
      router.php 
vendor/ 
    composer/ 
      /*usual files*/ 
    autoload.php 

あるので、私はいくつかの問題を得ている名前空間私index.phpインサイド

私が持っている

<?php 
// Autoload our namespaces 
require __DIR__.'/vendor/autoload.php'; 

use App\Helpers\Router; 
$route = new Router; 

次のエラーに

Fatal error: Class 'App\Helpers\Router' not found in /var/www/public/index.php on line 6

を取得する私はそれが働いて試してみて、取得するには、いくつかの異なるものを試してみましたが、私は私が間違っているつもりだところわかりませんよ。これは、フレームワークの外でComposerを使ってオートローディングするのを初めて見るので、どんな指針もありがたいです。

答えて

5

PSR-4は大文字と小文字を区別します。構造はapp/Helpers/Router.php以上で、資本Aを持つ必要があります。

すべてのクラス名は、大文字と小文字を区別して指定する必要があります。

サブディレクトリ名は、サブネームスペース名の大文字と一致しなければならない(MUST)。

終了クラス名は、.phpで終わるファイル名に対応します。ファイル名は終端クラス名の大文字と一致しなければならない(MUST)。

http://www.php-fig.org/psr/psr-4/

+2

追加ヒント:あなただけcomposer.jsonであなたのautoloadの設定を更新した場合にのみ、むしろ '作曲update'のを待っているよりも、作曲家のdumpautoload''と自動ロードの設定を再生成するに作曲を得ることができますレーズン無しのパッケージリストを更新する。 – Sammitch

+0

大文字と小文字の区別とファイル名のスペースが混じり合っていたので、ちょっと不便でした。本当に助けてくれてありがとう! –