Ich arbeite an einer Laravel-Anwendung mit vielen beredten Modellen. Diese beredten Modelle (z. B. Benutzer, Post usw.) enthalten auch viele Abfragen, die nur lose mit dem Modell verbunden sind (oft rohe SQL).Laravel, beste Stelle/Benennung für Abfragen im Zusammenhang mit mehreren db-Tabellen
Einige Abfragen sind wie, "Holen Sie mir einige Informationen aus einer Tabelle, einige andere und ein wenig Informationen aus einer dritten Tabelle". Jetzt können Modelle wie das Benutzermodell viele Methoden wie getAllUncompletedActionsForUser
oder getSessionsDurationsPerUser
haben. Ich denke, es ist nicht schön, wenn ein eloquentes Modell tausende Zeilen Code haben wird.
Was würden Sie von der Aufteilung dieser Modelle halten, wo würden Sie setzen und wie würden Sie Klassen benennen, die Datenbankergebnisse zurückgeben, die sich mit vielen verschiedenen Tabellen befassen?
Wenn Merkmale die Antwort sind, dann stellen Sie die falsche Frage. –
@ tereško Nachdem Sie Ihre Antwort gesehen haben, ist Ihre eine viel bessere Lösung. +1 Ich wusste nichts über Datenmapper. – Spacemudd
Es gibt auch andere Muster, wie [Table Gateways] (https://martinfowler.com/eaaCatalog/tableDataGateway.html) und einige andere Optionen. Sie sollten wahrscheinlich versuchen, [dieses Buch] (https://www.amazon.de/Enterprise-Application-Architecture-Addison-Wesley-Signature/dp/0321127420) irgendwo zu finden. Der Grund, warum Leute Eigenschaften so wenig mögen, ist, dass sie wirklich Kopier-Paste auf Maschinenebene sind. Der PHP-Interpretator kopiert physikalisch in das Codefragment, bevor es geparst wird. –