Ответ 1
Чтобы быть правдой, форма напрямую не связана с проверкой. Позвольте мне объяснить это.
Компонент формы отвечает за сопоставление данных, полученных от клиента, будь то данные GET или POST. Таким образом, он будет отображать строку в объект вашего кода (может быть массивом, если он не привязан к сущности).
Форма использует компонент validator для проверки объекта после того, как данные были сопоставлены с ним. Это означает, что валидация объекта полностью отделена от компонента формы. Таким образом, когда форма проверяется, это действительно означает, что компонент формы проверяет вашу сущность, а не данные формы. То, что проверяется, является сущностью, а не формой.
Форма используется исключительно для получения строкового представления и сопоставления его с иерархией сущности. Документация отражает это как Form и Validation представляют собой различные разделы symfony book.
При этом это также означает, что проверка сущностей может быть выполнена вне компонента формы с большой легкостью. Вы определяете константы как аннотации или во внешнем файле (yml, php или xml) и используете компонент validator для проверки вашей сущности. Вот пример кода, взятый из раздела Validation:
use Symfony\Component\HttpFoundation\Response;
use Acme\BlogBundle\Entity\Author;
// ...
public function indexAction()
{
$author = new Author();
// ... do something to the $author object
$validator = $this->get('validator');
$errors = $validator->validate($author);
if (count($errors) > 0) {
return new Response(print_r($errors, true));
} else {
return new Response('The author is valid! Yes!');
}
}
Как вы можете видеть, здесь нет формы, только объект и служба проверки. Более того, компонент проверки Symfony2 полностью автономный. Это означает, что вы можете использовать его без всей структуры. При этом, когда используется автономно, вы теряете приятную интеграцию с другими вещами.
Таким образом, ваша служба REST получает параметры, создает сущности из нее и использует службу проверки подлинности для проверки их целостности. Использование формы не является обязательным для проверки сущностей.