Как бороться с повторяющимися параметрами?

Как разобраться со многими повторяющимися параметрами в 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;
}
}

0

Решение

Передача объекта запроса лучше, чем отправка каждых
Параметр индивидуален.

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;
}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]