Как разобраться со многими повторяющимися параметрами в 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;
}
}
Передача объекта запроса лучше, чем отправка каждых
Параметр индивидуален.
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;
}
}
Других решений пока нет …