9

コンポーザーを使用してSilexアプリにクラスをロードする状況があります。

このクラスは次の場所にあります。

src/custom/UserProvider.php

私のcomposer.jsonに、次の行を追加しました。

"autoload": {
   "psr-0": {
        "CustomNamespace": "src/custom/"
    }
}

UserProvider.phpファイル内に、次のものがあります。

namespace CustomNamespace;

コンソールでcomposerupdateを実行すると、この行が/vendor/composer/autoload_namespaces.phpに追加されました。

'CustomNamespace' => $baseDir . '/src/custom/',

しかし、私がクラスを使おうとすると:

new CustomNamespace\UserProvider();

このエラーが発生しました:

致命的なエラー:クラス'CustomNamespace\UserProvider'が27行目の/home/ubuntu/www/project/web/index.phpに見つかりません

誰かが何が起こっているのか知っていますか?ありがとう!

4

2 に答える 2

8

問題はまさに@Maerlynが彼のコメントで言ったことです。

ファイルをsrc/custom / CustomNamespace / UserProvider.phpに移動すると、すべてが正常に機能します

于 2013-02-19T12:50:42.877 に答える
1

誰かが私の問題に遭遇した場合は、ここにメモを追加します。これは、この質問と同じように表示されますが、大文字と小文字の区別に関係していました。

サイトをOSX(大文字と小文字を区別しない)からUbuntu(大文字と小文字を区別)に移動しましたが、クラスが存在しないと文句を言いました。このファイルの名前はmyclass.phpで、名前をMyClass.phpに変更すると機能しました。

于 2013-04-24T09:18:31.950 に答える