Doctrine / Symfony - принудительно действующее юридическое лицо - PullRequest
0 голосов
/ 20 декабря 2018

Я создаю свой первый более крупный проект с использованием доктрины, которую я сейчас люблю и ненавижу!

То, чего я не понимаю, так это то, что для субъекта вполне нормальнобыть в недопустимом состоянии?

Я имею в виду, конечно, вы можете использовать валидатор, чтобы проверить, является ли сущность действительной (например, перед сохранением), но разве это не было бы намного лучше, если бы это было просто не так?можно даже быть в недопустимом состоянии?

class Author
{
    /**
     * @Assert\NotBlank
     */
    public $name;
}

ИМХО не должно быть возможности сделать:

$author = new Author();

, так как это приводит к недействительной сущности.Да, вы могли бы сделать это:

class Author
{
    /**
     * @Assert\NotBlank
     * @var string
     */
    public $name;

    public function __construct( string  $name )
    {
        $this->setName($name);
    }


    /**
     * @param string $name
     * @throws \Exception
     */
    public function setName(string $name)
    {
        if($name ==''){
            throw new \Exception('name must be set');
        }        
        $this->name = $name;
    }

}

Но тогда, для чего хорошо утверждение, верно?

Итак, я что-то здесь упускаю, или это просто так, как оно есть?

1 Ответ

0 голосов
/ 20 декабря 2018

О боже.Я говорил об этом.Жаль, что это было по-французски !

Неважно, я полностью с вами согласен и не вижу ничего плохого в создании исключений, если ваши входные данные не годятся для сущности.

Кроме того, для меня Доктрина не имеет ограничений на этот вид использования.На самом деле анемичные модели были задокументированы в официальной документации Doctrine.Так что да, не очевидно, что Doctrine поддерживает неанемическую модель.Но благодаря замечательным авторам времена меняются.

Я бы хотел "решить" вашу проблему, но я не вижу никакой.Я надеюсь, что дал то, что вы ожидали.

...