У меня есть класс с правилами проверки аннотаций, и я хочу проверить его в конструкторе, вызывая 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
или пустой идентификатор приложения.
Есть идеи, что я делаю не так?Спасибо!
Обновлено: Вне конструктора тоже не работает