Я немного запутался в сервисе, сущности и хранилище, и где я должен помещать то, что для проекта im работает. Я думаю, что им что-то не хватает, и я волнуюсь, что я ошибаюсь. Я не думаю, что имена таблиц сопоставления доктрин идеально подходят для отчетов, потому что есть много столбцов, а столбцы часто являются результатами других групп по дате, месячному году и т. Д.объект symfony2, хранилище, беспорядок службы
Краткое упрощение обзора проекта представляет собой набор веб-сайтов отчетов (в виде пакетов).
Для создания отчетов мне необходимо предварительно построить данные с помощью пакета журнала продаж. Журнал продаж извлекает данные из транзакционной базы данных и помещает их в таблицы, готовые к запуску различными другими отчетами, то есть теми, у которых есть пользовательские индексы и т. Д. Агрегирование данных - лучший способ объяснить это. Источник данных имеют миллионы данных бронирований восходящих поэтому его не эффективны строить отчеты непосредственно на источнике Так вот где журнал продажи идет в года.
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
salesJournal
класса для запуска журнала продаж и экспортировать из большой таблицы в другую таблицу.
createQuery($parameters);
runQuery($exportTableName);
WeeklyConversionBundle
// 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.
Так что, когда я начал проект, я предположил, что все функции принадлежат классу сущностей .. однако им не уверен, что они строго модели, поскольку они нуждаются Доступ к БД и доступ к другим классам? путают, куда класть классы/методы. Любая обратная связь будет высоко оценена.
Спасибо за этот ответ. Я думаю, что работает ключевое слово. Запуск запроса журнала продаж должен быть сервисом. Когда вы расширяете репозиторий, это означает, что вы должны использовать доктрину sql? –
Репозиторий - это класс, предоставляемый доктриной для управления запросами. Вы можете расширить его, добавив к нему специальные методы. –
Как добавить зависимость к службе, чтобы я мог запускать запросы? –