1

エンティティを検証したいのですが、これを行うのに最適な場所がわかりません。セッターメソッドにバリデーションコードを入れました。検証を選択Symfony\Component\Validatorした場合、検証サービスにアクセスするにはどうすればよいですか? 私の知る限り、これはサービスへの依存関係があることを意味します。

$app['validator']->validateValue($title, new Assert\NotBlank());

そして、エンティティークラスに依存関係を注入するのは良いアプローチではないと思いますよね? もしそうなら、どのようにこの検証を行うことができますか?

<?php
// AnExample/Entity/Book.php
namespace AnExample;

class Book
{
  private $isbn;
  private $title; // at leats 3 letters

  public function __set($name, $value) {
   ...
  }

  public function __get($name) {
   ...
  }

}
?>

技術的には多くの方法がありますが、私が探しているのは、この問題の設計パターンである従来の方法です。

4

1 に答える 1