[英]How to deal with repetitive parameters?
如何在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
類中,我們有一個create方法,其中也包含許多重復的許多參數。 並且在$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;
}
}
傳遞請求對象比單獨發送每個參數更好。
public function addList(CreateListRequest $request) {
$created = $this->list->create($request);
}
在List類中,由於請求對象始終具有用戶會話,因此只需將請求對象傳遞給listRepository類。
class List {
public function create($request) {
$list = $this->api->create($request->only(['name', 'subject', 'description', 'location']));
if ($list->status == "success") {
$row = $this->listRepository->create($request);
return true;
}
return false;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.