2016-06-27 1 views
0

プロジェクト(作業2)で、追加するたびに "php composer.phar dump-autoload"と "php composer.phar dump-autoload -o"新しいファイル(Webプロジェクトの新しいクラス)。 これらのコマンドラインを入力しないと、オートローダーダイヤルでこのクラスが見つからないことがわかります...ファイルを追加する - コンポーザーを使用する

個人的なプロジェクトでは、新しいクラスの作成ごとにこれらのコマンドラインを入力することはありません。私はこれを入れている私のcomposer.jsonで

"autoload": { 
    "psr-4" : { 
    "App\\": "app/", 
    "Database\\": "app/", 
    "Helpers\\": "app/", 
    "": [ 
     "app/", 
     "lib/" 
    ] 
    } 
} 

このように私は理解していない、なぜ、我々はフォルダ「アプリ」にファイルを追加するたびために、我々は「PHPの作曲をしなければなりません.phar dump-autoload "と" php composer.phar dump-autoload -o "...

ps:" app "と" lib "というディレクトリに名前空間のないクラスがあります。

あなたはそれがどこに来るかという考えがありますか?

ありがとうございます。

答えて

0

新しいクラスを追加した後にオートローダーをダンプする必要があるのは、クラスマップオートロードを使用していて、PSR-0またはPSR-4を使用していない場合だけです。

これは、そのアプリケーションのcomposer.jsonファイルに明示する必要があります。これは、"autoload":{"classmap":[...]}のようなものです。

これが存在しない場合、オートローダーをダンプする必要はありません。

composer dump-autoloadが実際に動作せず、composer dump-autoload -oが必要な場合は、オートローディングのPSR定義にエラーがあります。

あなたのcomposer.jsonからの抜粋が、あなたの非勤務の例であるかどうかは分かりません。私が言うことができるのは、ダンプなしで動作するはずです。しかし、まだ最適ではありません。

+0

ありがとうございました! – stephweb

関連する問題