Php 我的控制器应如何与Symfony2中的服务通信?
我正试图使我的控制器精简,完美的一次服务呼叫。所以我写下我的行动:Php 我的控制器应如何与Symfony2中的服务通信?,php,symfony,model-view-controller,Php,Symfony,Model View Controller,我正试图使我的控制器精简,完美的一次服务呼叫。所以我写下我的行动: public function actionDoSomething($request, $arg1, $arg2) { $result = $someService->doSomething($arg1, $arg2); if ($result === true) return 'Done'; return 'Failed, but cannot say why'; } 现在我
public function actionDoSomething($request, $arg1, $arg2)
{
$result = $someService->doSomething($arg1, $arg2);
if ($result === true)
return 'Done';
return 'Failed, but cannot say why';
}
现在我有我的疑问:
$arg1
应为整数,但用户输入1.25)这就是为什么可以在将数据传递给服务之前运行验证。但是,如果无效数据到达服务,这是一个例外。因此,我必须验证相同的数据两次?嗯,这取决于实际情况。有时,仅仅从服务层捕获异常就足够了,但有时,出于某种原因,您可能希望在将异常传递给服务层之前对其进行验证。这取决于你。顺便说一句,您至少要验证数据两次-至少您应该这样-一次在应用程序中,一次在数据库中。问题是我的控制器不能负责输入验证,但需要知道操作失败的原因(为用户显示消息),但另一方面,服务层根本不应该了解UI人员,为什么不能呢?嗯,控制器本身并不负责验证——它只是将其委托给验证设施——例如,通过使用
验证器服务——并根据所使用的UI格式化返回的约束冲突列表。这个问题似乎与主题无关,因为它属于