Wie man ein Modell in MVC mit PHP richtig strukturiert? Probleme mit Fat Model und Geschäftslogik
Hallo zusammen! Ich bin ein PHP-Anfänger und schreibe seit einigen Monaten in Laravel. Aber ich habe das Gefühl, dass ich mit den Modellen etwas falsch mache.
Ich habe ein Projekt für einen Online-Shop. Ursprünglich habe ich die gesamte Logik in Eloquent-Modelle gesteckt. Zum Beispiel enthält mein Modell Order:
class Order extends Model
{
public function calculateTotalWithDiscount($couponCode) { ... }
public function validateStock() { ... }
public function sendConfirmationEmail() { ... }
public function generateInvoicePdf() { ... }
public function applyLoyaltyPoints($userId) { ... }
public function checkFraud() { ... }
}
Inzwischen hat dieses Modell bereits über 2000 Zeilen. Ich verstehe, dass dies ein „Fat Model“ ist, aber ich weiß nicht, wie ich die Verantwortlichkeiten richtig aufteilen soll. Im Internet gibt es viele Diskussionen: Die einen sagen, das Modell sollte nur für die Datenbankarbeit zuständig sein, die anderen meinen, die gesamte Geschäftslogik sollte im Modell sein.
Könnt ihr mir sagen, wie man es richtig organisiert?