3

現在、次の composer.json ファイルがあります。

{
    "require": {
        "slim/slim": "2.*"
    },
    "autoload": {
        "psr-0": { "App": "app/" }
    }
}

アプリ フォルダーでクラスをインスタンス化しようとしていますが、オートローダーは次のものを探しています。

/var/www/framework/app//App/App.php

明らかに、2 番目のパラメーターは名前空間のルートではなく、名前空間を含むフォルダーです。どうすればロードできますか:

/var/www/framework/app/App.php

前もって感謝します!

4

1 に答える 1

1

最も簡単な解決策は、フォルダの名前を から に変更しappApp設定することです

"psr-0": { "App": "." }

それ以外の場合は、カスタムのオートローダーが必要だと思います。ただし、実証済みのユースケースに従うことをお勧めします。

src/App/App.php

"psr-0": { "App": "src" }

奇妙に見えますが、名前空間またはクラス (またはその両方) を呼び出すことは決してないと言わなければなりませんApp;) 何も言わず、エイリアシング ( use MyApplication as App) を使用すると、できるだけ短い識別子を記述する理由がなくなります。

于 2012-10-03T19:45:08.497 に答える