私はオートローディングと名前空間が新しく、MVCプロジェクトに名前空間を追加しようとしました。 PHP - 名前空間が見つかりませんでした。プロジェクトを作曲者と共にオートロード
は、だから私の作曲家で、私は、コメントを追加しました:"autoload": {
"psr-0": {
"prj\\app\\": "app/",
"prj\\app\\controller\\": "app/controller/",
"prj\\app\\classes\\": "app/classes/"
}
}
そして更新作曲とautodumpコマンドを実行しました。 、
use \app\classes\engine; // use statement I tried
Fatal error: Uncaught Error: Class 'app\classes\engine' not found in C:\inetpub\wwwroot\web\index.php:87 Stack trace: #0 {main} thrown in C:\inetpub\wwwroot\web\index.php on line 87
名前空間を使用してクラスを見つけることができない理由を私はよく分からない:
は、私は、しかし、私はちょうど戻って、次の取得これらの名前空間のいずれかを使用しようとする私のアプリに戻りました
PRJ
├───app
│ ├───classes
│ └───controller
├───web
│ └───index.php
├───vendor
│ ├───bin
│ ├───composer
│ ├───...
└───view
├───bootstrap
└───default
/appには、コントローラやクラスなどのロジックが格納されています。
/webはウェブルートです.index.phpは訪問者が見ているページであり、すべてがここで処理されます。
/vendorは、私の依存関係が保存されているcomposerディレクトリです。
こんにちは、私は自分のアプリにこれらの変更を加えましたが、今このコントローラに関連付けられている経路にアクセスすると、「無効なコールバックが指定されました」というエラーが表示されます。 これは私が最初に引数はコントローラにマッピングする必要がありますが、2番目の引数はコントローラのメソッドを指す必要があります。 $ app-> route( 'GET/test'、array( 'AutoController'、 'index')) ; – mhvvzmak1
ルーティングファイルはapp/routing/*。phpにあり、foreachを使用してweb/index.phpに必要です。 – mhvvzmak1