Цитата:
Сообщение от void
Если я правильно понял, эта штука не умеет связывать таблицы? Если так, то, как говорится, фтопку.
//У меня в своё время была безумная идея сделать генератор Doctrine-классов на основе $TCA
|
А как бы она автоматически связывала таблицы? Дело в том, что это часто зависит от формата вывода данных. То есть часто это определяется не моделью, а view.
Я сейчас делаю отдельное расширение, которое на основе конфига в typoscript, где описан какой должен быть вывод, включая взаимосвязь таблиц и описание форматирования всех значений, строит запрос к базе данных, причем один-единственный запрос. Затем расширение парсит ответ из БД, форматирует его и вставляет в шаблон, который описан в том же самом typoscript файле и возвращет готовый HTML.
В результате, там где в commerce, например для вывода list view, когда много атрибутов в продуктах и артикулах, используется порядка ста запросов к БД, мое расширение делает один! запрос, но сложного вида - в одном запросе там например бывает 25 вложенных таблиц, скорость обработки такого сложного запроса в MySQL не намного меньше, чем обработка одного простого запроса, и в результате нагрузка на БД снижается очень значительно, поскольку вместо ста запросов делается один. Также большой плюс в том, что запрос строится автоматически, на основании конфига. При таком подходе, я даже не вижу смысла использовать ORM, поскольку с отдельными записями работа не идет. Разработчик строит только описание вложенных таблиц, задает самые общие условия для выборки, например для list view в commerce задает какие продукты надо вывести, а расширение само строит запрос, связывая таблицу продуктов с артикулами, далее связывает со списком атрибутов, далее подключает таблицы значений атрибутов итд ..., все это в одном SQL запросе, а на выходе из расширения получаем готовый HTML.