私は頻繁にSymfonyでデザイン問題を経験していますが、私が最適に解決しているかどうかはわかりません。エンティティのモデル計算ロジックSymfonyで頻繁に発生する問題
は私が例を挙げてみましょう:マーチャントアカウントの名前
Entity Merchant Account
property $dailyProcessingLimitation // Int
property $orders // ArrayCollection
エンティティは、X、ユーロのに設定し、日々の処理制限があります。
私は次の操作を実行し、特定の商人のアカウントは、その処理の限界に達している場合は、これを行うには、チェックしたい:私は今日のためにすべての注文を取得し、単一通貨にそれらすべてを変換し、これを行うには
私はエンティティにコンテナを注入するべきではないので、私はエンティティの内部でこれを行うことはできませんので、私は通貨コンバータのようなものが必要です。
ので、私は「MerchantAccountManager」を作成する必要があり、このような何か:
$merchantAccountManager = $this->container->get('merchant_account_manager');
$totalForAccount = $this->getTotalProcessedForMerchantAccount($merchantAccount);
は、のように感じている、これを追加することではなく、その後、エンティティにこれを直接呼び出すことができるようにする任意の適切な方法はあります醜いコーディング。
なぜ私はそれが悪いデザインのように感じるのですか、他の開発者はエンティティメソッドを検査するのではなく、サービスが存在することを知る必要があるということです。