Wie viele wiederkehrende Parameter in einem create()
zu behandeln. Ich mag es, ordentlich und lesbar zu sein.Wie man mit sich wiederholenden Parametern umgeht?
Zum Beispiel haben wir in der Steuerung addList
() -Methode mit vielen Parametern.
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,
);
}
In der List
Klasse haben wir ein Verfahren schaffen, die auch viele sich wiederholende viele Parameter. Und in der $this->api->create()
und $this->listRepository->create()
die auch irgendwie wiederholt wird. Gibt es eine Möglichkeit, dies zu bereinigen oder umzuformen?
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;
}
}
Es scheint mir der einzige Parameter der 'create()' Methode benötigt, ist die '$ request' Variable. Wird die Methode 'create()' von anderen Objekten verwendet und teilen sie alle dieselbe Signatur? – jeroen
Ich würde in Erwägung ziehen, dies auf http://codereview.stackexchange.com/ – JimL
zu veröffentlichen Würde eine 'ListForm'-Klasse in Ihre Struktur passen? In Symfony erstellen Sie Formularklassen, übergeben die Anfrage und füllen die Formulardaten basierend auf der Anfrage aus, könnten erweitert werden, um Validierungen usw. durchzuführen. Wenn ja, könnten Sie in addList so etwas tun: '$ form = new ListForm(); $ form-> handleRequest ($ Anfrage); $ created = $ this-> list-> create ($ form); 'Und dann könnte List :: create' create (ListForm $ form) 'sein, was automatisches Vervollständigen usw. ergibt. – JimL