2017-06-06 25 views
2

内部の要求をシミュレートします。だからここですべてが良いです。私の問題は、時々、機能2が呼び出すと、それは私が機能1を呼び出す必要がありますが、私は適切な要求を持っていないと私は$patternは、私はsymfonyのプロジェクトで働いていると私は私のコントローラに2つの機能を持つコントローラ

を送りたいときに私は3溶液

を見つけることがつもりです解決方法1: は関数1と同じことを行いfunction1bisを作成しますが、パラメータとして配列を取る

解決方法2:私の最初の関数にNULL値を開始

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内でリクエストします。

私は解決策3をやろうとしたが、溶液3が悪いプログラミングでない場合、i「はbest'andでどのように、私は願いものを思ったんだけど見つからない

答えて

1

私は最終的にオプション1をしました。より論理的であると思われ、それは他の瞬間に使用することができます。ソリューション2は、他のどこかで問題を引き起こした可能性のあるヌルパラメータと、ソリューション3内でforeachを実行する必要があるため、ソリューション3はもっと多くのリソースを必要とするため、危険であるようです。だから私のソリューションは次のようになります:

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) 
} 
関連する問題