Мне сложно определить, что я делаю неправильно в symfony, чтобы подтвердить запрос.Проверка достоверности Symfony
У меня есть контроллер, который принимает пользователя через запрос POST
public function createAction(Request $request)
{
$params = $request->request->all();
$user = new User();
$user->setUsername($params['username']);
$user->setEmail($params['email']);
$user->setPassword($params['password']);
$errors = $this->get('validator')->validate($user);
if(count($errors) > 0)
{
return $this->respond(['errors' => $errors], 422);
}
else
{
$user = $this->get('userrepository')->create($user);
return $this->respond($user, 201);
}
}
Как вы можете видеть, я сначала создать пользователя, а затем передать его в службу валидатора и возвращать ошибки, если таковые имеются, в противном случае я попросите мой репозиторий создать пользователя в базе данных.
Проверка Я использую следующий (YAML):
AppBundle\Entity\User:
constraints:
- Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity: email
properties:
username:
- NotBlank: ~
email:
- NotBlank: ~
- Email:
message: The email {{ value }} is not a valid email.
password:
- NotBlank: ~
Теперь проверка работает, но он принимает Symfony вокруг 3000ms реагировать в dev env
с пустой базой данных.
Что может быть причиной этого absurdly
длительное время отклика?
Другие запросы GET/POST без подтверждения принимаются только за 250-300 мс.
PS: Я попытался ввести правила проверки в Entity как аннотации, но нет разницы во времени ответа.
Попробуйте протестировать без единственного ограничения сущности. –
Я пробовал это и не очень сильно влияет на время ответа (возможно, 50 мс). Так что это не кажется причиной – RVandersteen
Странно. Можете ли вы профилировать свой запрос с помощью blackfire.io? –