Avatar ·

MVC में मॉडल को सही तरीके से कैसे संरचित करें? Fat Model और बिज़नेस-लॉजिक की समस्याएँ

सभी को नमस्ते! मैं एक शुरुआती PHP-डेवलपर हूँ, और पिछले कुछ महीनों से Laravel पर लिख रहा हूँ। लेकिन मुझे लगता है कि मैं models के साथ कुछ गलत कर रहा हूँ।

मेरे पास एक ऑनलाइन स्टोर का प्रोजेक्ट है। शुरू में मैंने सारी लॉजिक Eloquent models में डाल दी थी। उदाहरण के लिए, मेरी Order model में यह सब है:

class Order extends Model
{
    public function calculateTotalWithDiscount($couponCode) { ... }
    public function validateStock() { ... }
    public function sendConfirmationEmail() { ... }
    public function generateInvoicePdf() { ... }
    public function applyLoyaltyPoints($userId) { ... }
    public function checkFraud() { ... }
}

अब इस model में 2000+ लाइनें हो गई हैं। मैं समझता हूँ कि यह "Fat Model" है, लेकिन मुझे नहीं पता कि इसे सही तरीके से कैसे विभाजित किया जाए।