【发布时间】:2015-06-25 10:56:38
【问题描述】:
我有一个关于 Symfony 2 控制器构造的问题。 当我想处理一个表单时,我创建了一个单独的表单处理程序来处理表单并在我的控制器中调用这个处理程序:
public function registerAction()
{
$formHandler = $this->container->get('fos_user.registration.form.handler');
$confirmationEnabled = $this->container->getParameter('fos_user.registration.confirmation.enabled');
$process = $formHandler->process($confirmationEnabled);
return new JsonResponse($process);
}
我是否也应该使用这种方法为仅包含业务逻辑且不验证表单的控制器创建 Handler 类?
例如当我将逻辑外包到单独的处理程序中时,我用于注册确认的控制器操作如下所示:
public function confirmAction($token)
{
$formHandler = $this->container->get('acme.register_confirm.handler');
$process = $formHandler->process($token);
return new JsonResponse($process);
}
我会处理这个服务的 process 方法中的逻辑。
或者我应该让控制器中的逻辑而不是创建另一个单独的处理程序类吗?
如果我采用这种方法,几乎所有控制器看起来都一样:
1) 获取表单处理程序 2)调用handler的process方法 3) 返回响应
【问题讨论】:
标签: php symfony model-view-controller controller