我在symfony项目中工作,我的控制器中有两个功能:
function1Action ($request Request, $product) {
$quantity = $request->request->get('quantity')
//dothingshere
}
function2Action($product, $value) {
$em = $this->getDoctrine()->getManager();
$pattern = $em->getRepository('repo')->find($value)
//return an array ['quantity'=>x]
$this->function1Action($pattern, $product)
}
通常用户使用良好的请求参数调用函数1(post request)。所以这里一切都很好。我的问题有时候,功能2将被呼叫,当我需要呼叫功能1但我没有正确的请求而我想发送$pattern
所以我找到了3个解决方案
解决方案1: 创建function1bis,它与function1执行相同的操作,但将数组作为参数
解决方案2:在我的第一个函数
中启动一个空值function1 ($request Request, $product, $patt=null) {
if(!$patt){
$quantity = $request->request->get('quantity')
}
else {
$quantity = $patt['quantity']
}
//dothingshere
}
function2($product, $value) {
$em = $this->getDoctrine()->getManager();
$pattern = $em->getRepository('repo')->find($value)
//return an array ['quantity'=>x]
$this->function1Action(null, $product, $pattern);
}
解决方案3: 在function2中创建一个对象Request。
我试图做解决方案3,但我无法找到并且我想知道希望一个人是最好的'如果解决方案3是不错的编程
答案 0 :(得分:1)
我终于做了选项1.似乎更合乎逻辑,并且可以在其他时刻使用它。解决方案2似乎有风险,因为null参数可能导致其他地方的问题而解决方案3会占用更多的资源,因为我必须在我的function2中做一个foreach。所以我的解决方案看起来像这样:
function1Action ($request Request, $product) {
$quantity = $request->request->get('quantity')
//dothingshere
}
function1bis($pattern, $product) {
$quantity = $pattern['quantity']
//dothingshere
}
function2Action($product, $value) {
$em = $this->getDoctrine()->getManager();
$pattern = $em->getRepository('repo')->find($value)
//return an array ['quantity'=>x]
$this->function1bis($pattern, $product)
}