私のlaravelプロジェクトでは、CustomerLinks
というモデルを作成しました。モデルはapp/models
フォルダにあります。Mycomposerファイルには以下のオートロード:
"autoload": {
"classmap": [
...
"app/models",
...
],
...
},
そして、use
を参照するExtendedUserControllerにCustomerLinks
ステートメントがあります。
<?php
...
use CustomerLinks;
...
class ExtendedUserController extends UserController {
composerファイルのautoloadプロパティがクラスマップにapp/modelsを持っているため、名前空間接頭辞なしでuse CustomerLinks
を使用できるはずです。
これは機能しますが、ExtendedUserControlerに変更を加えてブラウザをリロードすると、常にエラーが発生します。
The use statement with non-compound name 'CustomerLinks' has no effect
エラーはuse CustomerLinks
行拡張ユーザーコントローラーを指しています。
composer dump-autoload
を実行すると、すべてが正常に機能しますが、パターンに従う必要がある場合は非常にイライラします
変更を行う->自動ロードをダンプする->ブラウザを更新する->繰り返す
エラーに対処する方法はありますか?
名前空間内にいない(つまり、ルート名前空間にいる)場合、使用するクラスも名前空間にない(つまり、ルート名前空間にもある)場合、use
を使用しても意味がありません。 、コードがなくても同じように機能するためです。このステートメントでは何もインポートしていません。
Composerはこれとは何の関係もなく、他のオートローディングも関係ありません。 PHPはそれ自体で機能します。