サービスプロバイダーをLaravelのApp/Providersディレクトリの外に置くことは可能ですか?私はLaravel 5.4を使用しています。カスタムネームスペースのLaravelサービスプロバイダ
私は通常、すべての自分のクラスをsrc/CUSTOM_NAMESPACEディレクトリに入れます。私はそこにすべての私のコントローラ、モデル、リポジトリなどがあり、すべて正常に動作します。しかし、私はそこから働くサービスプロバイダーを得ることができません。私が知っている
私はapp.phpするサービスプロバイダを追加した"psr-4": {
"App\\": "app/",
"CUSTOM_NAMESPACE\\": "src/"
}
私はそうcomposer.jsonのようPSR4オートローダーの定義を追加した
... ...
CUSTOM_NAMESPACE\Providers\BlahServiceProvider::class,
他のすべてのクラスがうまくロードされるために機能します。私はトリプル綴り、ケースなどをチェックして
私はいつも
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'CUSTOM_NAMESPACE\Providers\BlahServiceProvider' not found
は、私が正常に動作作曲ダンプ-自動ロードを実行しようとしているが、私は、このようなPHPの職人などのコマンドを実行した場合...次のエラーを取得します最適化またはコンポーザーの更新私はこのエラーが発生します。
プロバイダーがAppディレクトリになければならないというドキュメントには何も見つかりません。
私はサービスプロバイダをappディレクトリに置いていましたが、自分の名前空間のsrcディレクトリにすべてのクラスを持つことができないということがちょっと疑問に思っていました。 。
誰もがこの問題に遭遇しましたか?それはそのように動作するはずはありませんか?
ありがとうございます。
'app.php'にはアプリネームスペースにない多くのプロバイダがありますので、間違いなく動作するはずです。作曲者のオートローダーがクラスを正しくピックアップしているかどうかを確認してください。 – apokryfos
ファイル内のクラス名がファイル名と一致することを確認しますか?その名前空間の他のクラスに問題はありませんか? –
ファイル名とクラス名は同じです。確実にコピーして貼り付けた。 – Steven1978