create()
で多くの繰り返しパラメータを処理する方法。私はきれいに見えるし、読むことが好きです。繰り返しパラメータを扱うにはどうすればいいですか?
たとえば、コントローラには、多くのパラメータを持つaddList
()メソッドがあります。我々はこれも多くの反復的な多くのパラメータのメソッドを作成する必要がありList
クラスで
public function addList(CreateListRequest $request)
{
$created = $this->list->create(
$request->user(),
$request->name,
$request->subject,
$request->description,
$request->location,
$request->do_email,
$request->provider,
$request->something1,
$request->something2,
);
}
。そして、$this->api->create()
と$this->listRepository->create()
にもちょっと繰り返されています。これを清掃する方法やリファクタリングする方法はありますか?
class List
{
public function create($user, $name, $subject, $description, $location, $doEmail, $provider, $something, $something2)
{
$list = $this->api->create($name, $subject, $description, $location);
if ($list->status == "success") {
// Add to database
$row = $this->listRepository->create($user->id, $name, $subject, $description, $location, $doEmail, $provider, $something, $something2);
return $row;
}
return false;
}
}
'create()'メソッドが必要とする唯一のパラメータは、 '$ request'変数です。 'create()'メソッドは他のオブジェクトで使用されていますか?それらはすべて同じシグネチャを共有していますか? – jeroen
私はこれをhttp://codereview.stackexchange.com/に投稿することを検討したいと思います。 – JimL
'ListForm'クラスはあなたの構造に適合しますか? symfonyでは、フォームクラスを作成し、それにリクエストを渡します。リクエストに基づいてフォームデータが入力され、バリデーションなどを行うように拡張できます。もしそうなら、あなたはaddListの中で次のようなことをすることができます: '$ form = new ListForm(); $ form-> handleRequest($ request); List :: createは、自動補完などを行う 'create(ListForm $ form)'となります。 – JimL