サービス、エンティティ、およびリポジトリについて少し混乱しています。また、現在取り組んでいるプロジェクトのために何をどこに置くべきかについても混乱しています。私は何かが欠けていると思い、間違った方法でそれを行っているのではないかと心配しています. 多くの列があり、列は多くの場合、日付、月、年などの他のグループの結果であるため、ドクトリンマッピングテーブル名はレポートに理想的だとは思いません.
プロジェクトの簡単な概要は、Web ベースのレポート (バンドルとして) のコレクションです。
レポートを作成するには、販売ジャーナル バンドルを使用してデータを事前に作成する必要があります。販売ジャーナルは、トランザクション データベースからデータをフェッチし、それを他のさまざまなレポート (カスタム インデックスなどを持つレポート) で実行できるようにテーブルに配置します。データの集計は、それを説明するより良い方法です。データソースには何年も前の数百万の予約データがあるため、ソースに直接基づいてレポートを作成するのは効率的ではなく、販売ジャーナルが登場します。
SalesJournalBundle - fetches data from source and puts it into a table ready for other reports
WeeklyConversionReportBundle - exports sales journal into weekly conversion report table has functions for totals for the week, totals for month, etc
OtherReportBundle - etc
販売ジャーナル
販売仕訳帳を実行し、大きなテーブルから別のテーブルにエクスポートするクラス。
createQuery($parameters);
runQuery($exportTableName);
ウィークリーコンバージョンバンドル
// runs the sales journal and saves to the report. Entity? Or Service or Repoistory?
runSalesJournalQuery();
// generates conversion figures and saves the to the table? Entity Or Service or Repoistory?
generateConversions();
getWeekTotals(); // used when displaying the report..
getMonthTotals($month) // used when displaying the report..
getTotals() // used when displaying the report..
etc.
したがって、プロジェクトを開始したとき、すべての関数がエンティティ クラスに属していると想定していましたが、DB アクセスと他のクラスへのアクセスが必要なため、それらが厳密にモデルであるかどうかはわかりませんか? クラス/メソッドをどこに置くべきか混乱しています。どんなフィードバックでも大歓迎です。