symfony4 проверяет объект в конструкторе - PullRequest
0 голосов
/ 22 октября 2018

У меня есть класс с правилами проверки аннотаций, и я хочу проверить его в конструкторе, вызывая validate($this) сразу после того, как я установил все необходимые данные.

Вот код:

class BaseInfo 
{
    /**
    * @Assert\NotBlank()
    * @var string
    */
    private $appId;
    /**
     * @Assert\NotBlank()
     * @Assert\Regex("/itunes.apple|play.google/")
     * @var string
     */
    private $previewUrl;

    /**
     * AdActionBaseAppInfo constructor.
     * @param HasOfferAppResponse $response
     */
    public function __construct(AppResponse $response)
    {
        $this->previewUrl = $response->getPreviewUrl();
        $this->appId = $response->getAppId();

        $errors = Validation::createValidator()->validate($this);
        if($errors->count() > 0) {
            throw new \InvalidArgumentException((string)$errors);
        }
    }
}

Но, похоже, проверка не работает, поскольку она позволяет передавать любой предварительный URL-адрес и null или пустой идентификатор приложения.

Есть идеи, что я делаю не так?Спасибо!

Обновлено: Вне конструктора тоже не работает

...