2017-08-10 1 views
-1

なぜ私は作曲家パッケージの名前空間を変更できないのか混乱しています。私は私のベンダのディレクトリにあるパッケージでlaravelアプリケーションを実行しています。なぜ作曲家の名前空間を変更できないのですか?

ので、このパッケージのための私のcomposer.jsonが含まれています:

{ 
    "autoload": { 
     "psr-4": { 
      "Spatie\\Backup\\": "src" 
     } 
    } 
} 

を私は例えば、名前空間を変更したい:私はオートローダーを実行すると

{ 
    "autoload": { 
     "psr-4": { 
      "Spatie\\Backupdatabase\\": "src" 
     } 
    } 
} 

ファイルvendor/composer/autoload_psr4.phpはまだ含まれてい元の名前空間であり、更新されたものではありません。私は実行しようとしました

$ composer clear cache 

しかし、それは違いはありません。

私は、ベンダーディレクトリのパッケージを実行して、composer.jsonファイルを探して、 'autoload'セクションからオートロードすることで作者がオートロードすると思っていましたが、今のところ疑問に思っています。

私には何が欠けていますか?なぜ新しい名前空間で自動ロードされないのですか?

更新

私は、パッケージcomposer.jsonで名前空間に編集PSR4ファイルを更新していない理由はinstalled.jsonファイルが原因だと思います。このファイルには、実際にインストールされたものと指定された名前空間が含まれています。このファイル内のパッケージの名前空間を変更してオートローダーを実行すると、更新された名前空間が有効になります。作曲者のドキュメントを使ってこのファイルに関する多くの情報を見つけることができません。

+0

注意https://packagist.org/packages/spatie/を参照してください。これらのパッケージのいずれかに依存している場合、またはあなたのパッケージを公開しようとすると、問題が発生する可能性があります。 – localheinz

+0

こんにちは@localheinz、私はちょうど問題を追跡するためにSpatieパッケージを使用しています。私はオートローダーを使いましたが、それは違いはありません。ありがとうございます – user3455246

+0

*オートローダ*を実行しているとはどういう意味ですか? – localheinz

答えて

0

composer.jsonに自動ロードの設定を調整した後、あなたが見る、参考のため

$ composer dump-autoload 

を実行する必要があります: `Spatie`名前空間がすでにあることを

+0

私はここで提案したことを試したことがありますか?これは、まさにあなたがする必要があるので、受け入れられた解決策でなければなりません。 – localheinz

+0

私は作者dump-autoloadを実行しましたが、これは単独では動作しません。変更は、まずcomposerフォルダのinstalled.jsonを削除した場合にのみ発生します。 – user3455246

関連する問題