PHP の PSR-4 標準と互換性を持たせるためにレガシー PHP アプリケーションをリファクタリングすることに関して質問があります。まだ適切に名前空間が設定されていない app/classes/ フォルダーにいくつかのクラスがあり、composer の vendor/autoload.php を呼び出したときにそれらを直接オートロードしたいと考えています。に従って名前空間を追加し、 composer の vendor フォルダーの下にディレクトリ\<NamespaceName>(\<SubNamespaceNames>)*\<ClassName>
を作成しようとしvendor/myapp/classes/src/
、dump-autoload コマンドを実行しましたが、役に立ちませんでした。クラスがロードされず、composer はそれを見つける場所を見つけられません。これを行う方法についての指針はありますか?
ありがとう、
1月
注意事項: -> コードは内部使用のみであるため、Packagist のように公的に検索可能なリポジトリにソース コードをアップロードしたくありません。
編集: ここに私の composer.json があります:
...
"autoload":{
"psr-4": {
"Myapp\\" : "Myapp"
}
},
...
しかし、構造は次のようになります。
->Myapp
-->Classes
--->Module1
---->submodule.php
--->Module2
---->submodule2.php
--->Module3
---->submodule3.php
--->Config
---->config.db.php
->vendor
-->autoload.php
ここに私の問題/質問があります:
- submodule2.php と submodule3.php をロードする submodule.php をロードしようとすると、submodule3.php が見つからないことがわかります。submodule3.php の名前空間は Myapp\Classes\Module3 ですが、見つからないと表示されます。
- autoload.php を呼び出すたびに config.db.php を強制的にインクルードしたい