Ich habe eine Klasse namens Sharer
, die eine Service
Schnittstelle in der Konstrukt-Methode akzeptiert. Service
kann FacebookService
oder TwitterService
und so weiter sein. Jede Service
Klasse verfügt über eine post
Methode, die alle Array-Daten, die Sie an diese Methode übergeben, mit einer eigenen Verbindung (entweder facebook oder twitter in diesem Beispiel) posten.Wie kann ich diesen Code in Laravel effizient strukturieren?
Jetzt die Sharer
Klasse normalizes
Daten vor dem Senden an die service
Post-Methode. Durch die Normalisierung wird überprüft, ob das Objekt, das wir an diese post
-Methode senden, nur ein einfaches Array oder eine Model
Klasse ist. Model
kann entweder Project
Modell oder Image
Modell oder Video
Modell und so weiter sein.
Wenn es sich um eine Modellklasse handelt, ruft es den Transformator dieses bestimmten Modells auf. Transformers
sind nur Hilfsklassen, die die Modellinstanz akzeptieren und sie haben zwei Methoden - facebook
und twitter
in diesem Fall. Und jede Methode gibt ein formatiertes Array zurück, das für die Verbindung spezifisch ist.
So zum Beispiel, facebook
Methode ergreift die erforderlichen Felder (die benötigt werden, um auf Facebook zu posten) aus dem Modell und sendet das Array zurück. Und Twitter-Methode tut das gleiche für twitter's Pflichtfelder.
Jetzt ist die Sache, mit der ich ein bisschen feststecke, diese spezifische Methode auf der Transformatorklasse anzurufen. Ich möchte so etwas tun:
aber offensichtlich möchte ich es irgendwie dynamisch machen und habe diese if-aussagen nicht. Was wäre ein besserer Ansatz dafür?