Php Symfony验证速度慢
为了验证请求,我很难找出我在symfony中做错了什么 我有一个控制器,通过POST请求接收用户Php Symfony验证速度慢,php,performance,validation,symfony,Php,Performance,Validation,Symfony,为了验证请求,我很难找出我在symfony中做错了什么 我有一个控制器,通过POST请求接收用户 public function createAction(Request $request) { $params = $request->request->all(); $user = new User(); $user->setUsername($params['username']); $user->setEmail($params['em
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):
现在验证工作正常了,但Symfony需要大约3000毫秒才能在dev env
中用空数据库做出响应
导致响应时间过长的原因可能是什么
其他未经验证的GET/POST请求只需250-300毫秒即可完成
PS:我尝试将验证规则作为注释放入实体中,但响应时间没有差异。供将来参考:
我的问题是使用/web/app\u dev.php/…
来访问symfony,而不是在开发中使用内置服务器
$php应用程序/控制台服务器:运行
尝试在没有唯一实体约束的情况下进行测试。我尝试了,但它对响应时间影响不大(可能是50毫秒)。所以,这似乎不是造成隔阂的原因。你能用blackfire.io来分析你的请求吗?不确定我是否能,还有其他方法可以分析吗?
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: ~