如何处理create()
中的许多重复参数。我喜欢看起来整洁和可读。如何处理重复的参数?
例如在控制器中,我们有addList
()方法,它有许多参数。
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,
);
}
在List
类,我们有一个创建方法也很多重复性的许多参数。并在$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(); $形式 - >的handleRequest($请求); $ created = $ this-> list-> create($ form);'然后List :: create可以是'create(ListForm $ form)'这会给自动完成等等 – JimL