0

「Xedef」というアプリが 1 つだけの Symfony 2.2 プロジェクトがあります。その app フォルダー内に、Modelいくつかのクラスを含むディレクトリを作成しました。名前空間を次のように宣言することで、そのクラスの名前空間を定義できることを望んでいました。

namespace Xedef\Model;

class MyClass
{
    // ...
}

そして、その名前空間を次のように「使用」するだけで、たとえば私のコントローラーからそれらを使用します。

use Xedef\Model\MyClass;

class HomeController extends Controller
{
    public function welcomeAction()
    {
        $myObj = new MyClass();
    }
}

しかし、私には運がありませんでした。これにより、次のエラーが発生します。

FatalErrorException: エラー: クラス 'Xedef\Model\MyClass' が /gitRepo/XedefApp/src/Xedef/MainBundle/Controller/HomeController.php に見つかりません

奇妙なことに、私はこれと同じことを Sf 2.1 で行いましたが、何の問題もありませんでした。2.2で何か変わった?

4

1 に答える 1

1

クラスを自動ロードする場合は、srcまたはvendorディレクトリに配置する必要があります。composer.json別のディレクトリからクラスを自動ロードする場合は、ファイルを編集することもできます。

{
    ...
    "autoload": {
        "psr-0": {
            ...
            "Xedef": "path/to/Xedef"
        }
    }
}
于 2013-04-28T07:01:00.037 に答える