我經常遇到Symfony中的設計問題,我不確定我是否以最優方式解決問題。Symfony中的頻繁設計問題,實體中的模型計算邏輯
讓我舉一個例子:
Entity Merchant Account
property $dailyProcessingLimitation // Int
property $orders // ArrayCollection
實體命名商家帳戶有一個每天處理的限制,設置爲X歐元。
我要檢查,如果特定商家帳戶已達到其加工的限制,要做到這一點,我做了以下內容:
我獲取所有訂單的今天,他們都轉換成單一貨幣,這樣做,我需要一些像貨幣轉換器這樣的東西,所以我不能在實體內部這樣做,因爲我不應該將容器注入實體。
所以我要創建一個「MerchantAccountManager」,做這樣的事情:
$merchantAccountManager = $this->container->get('merchant_account_manager');
$totalForAccount = $this->getTotalProcessedForMerchantAccount($merchantAccount);
有任何適當的方式能夠直接對實體調用該方法,而不是加入這個感覺就像醜陋的編碼。
爲什麼我覺得它不好設計的原因是,其他開發人員必須知道該服務存在,而不是能夠檢查實體方法。