エンティティを検証したいのですが、これを行うのに最適な場所がわかりません。セッターメソッドにバリデーションコードを入れました。検証を選択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) {
...
}
}
?>
技術的には多くの方法がありますが、私が探しているのは、この問題の設計パターンである従来の方法です。