Avatar ·

如何在PHP中正确构建MVC模型?Fat Model与业务逻辑的问题

大家好!我是一名初学PHP开发者,已经用Laravel写了几个月。但我感觉在模型方面做得不太对。

我有一个电商网站项目。最初我把所有逻辑都放在Eloquent模型中。例如,我的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() { ... }
}

现在这个模型已经有2000多行代码。我明白这是“Fat Model”,但不知道如何正确划分职责。网上有很多争论:有人说模型应该只用于数据库操作,也有人说所有业务逻辑都应该放在模型中。

请教一下,如何正确组织