5

ExclusionPolicy を使用しようとしていますが、「注釈が存在しないか、自動読み込みできませんでした」というエラーが表示され続けます。

スローされる正確なエラーは次のとおりです。

[Semantical Error] クラス Acme\DemoBundle\Entity\Attributes の注釈「@JMS\SerializerBundle\Annotation\ExclusionPolicy」が存在しないか、自動ロードできませんでした。

私のコードは次のとおりです。

namespace Acme\DemoBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints;
use JMS\SerializerBundle\Annotation\ExclusionPolicy;
use JMS\SerializerBundle\Annotation\Expose;

/**
 * Acme\DemoBundle\Entity\Attributes
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="Acme\DemoBundle\Entity\AttributesRepository")
 * 
 * @ExclusionPolicy("all")
 */
class Attributes
{
   ...
}
4

1 に答える 1

10

あなたの問題は、間違った名前空間を使用することによって引き起こされます。

それ以外の:

use JMS\SerializerBundle\Annotation\ExclusionPolicy;
use JMS\SerializerBundle\Annotation\Expose;

そのはず:

use JMS\Serializer\Annotation\ExclusionPolicy;
use JMS\Serializer\Annotation\Expose;

「バンドル」がなくなったことに注意してください。Ver 0.11では、独自のリポジトリに展開されました。

変更ログは次のとおりです。

  • 名前空間の変更

schmittjoh/serializerコア ライブラリは、Symfony2 プロジェクトだけでなく、あらゆる種類の PHP プロジェクトで簡単に再利用できるように、専用のリポジトリに抽出されました 。これにより、名前空間がいくつか変更されます。これらの置換を (順番に) 実行することで、プロジェクトを調整できます。

  • JMS\SerializerBundle\Serializer -> JMS\Serializer
  • JMS\SerializerBundle -> JMS\Serializer
  • JMS\Serializer\DependencyInjection -> JMS\SerializerBundle\DependencyInjection

  • 依存関係の変更

安定性の設定によっては、jms/di-extra-bundle と jms/security-extra-bundle のバージョンを増やす必要がある場合があります。composer の解決アルゴリズムのバグが原因で、composer の更新を 2 回実行する必要がある場合もあります。

于 2013-04-26T05:51:30.030 に答える