Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Выбор CMS, позиционирование TYPO3, бизнес веб-разработки > Вопросы выбора CMS

Ответ
 
Опции темы Опции просмотра
Старый 05.07.2009, 01:42   #11
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

Опупеть. Если 20 таблиц, то я бы сделал это на джанго, и, думается, раз в N быстрее. Потери на интеграции были бы меньше, чем такое
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 05.07.2009, 01:42   #12
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

Я кстати правильно понимаю, что вы написали свой ORM?
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 05.07.2009, 03:38   #13
jettero
Senior Member
 
Регистрация: 24.06.2006
Сообщений: 143
По умолчанию

20 таблиц это не так страшно, многие из них в запросе повторяются (там же локализация, а в TYPO3 локализованные записи и оригинальные находятся в одной таблице, поэтому когда выводится не основной язык, то таблицы в запрос включаются дважды).

Я сделал не ORM, а некоторое свое решение, я затрудняюсь его классифицировать.
В общем есть 1) описание модели, я его делаю своим синтаксисом в typoscript (я добавляю свой TLO DBVIEW) там описано какие таблицы как соединяются, какие условия объедения итп. это описание находится в статичном TS шаблоне, который я подключаю на странице вставки плагина. 2) Далее поверх этого статичного шаблона накладывается TS шаблон страницы плагина, в котором описаны уже какие сущности модели надо вывести на странице, идет список нужных полей (чтобы не таскать из базы лишнее), описывается форматирование полей, тут уже именно шаблон для вывода html, там много работы со stdWrap, склейка списков через ->split итп, вообщем тут обычные TS объекты работают на полную, так как данные в шаблон передаются через загрузку cObj->data и их можно обрабатывать средствами TS как вздумается.
Имея эти шаблоны моя библиотека парсит шаблон модели, составляет один большой SQL запрос, получив ответ она уже парсит шаблон вывода и на выходе получается html.
То есть ORM'ом тут и не пахнет зато работает быстро и модель и шаблонизация более-менее разделены.

На ORM'е у меня не получилось сделать быстрый вывод, дело в том, что у меня в анкетах юзеров много вложенных сущностей - анкеты состоят из блоков, каждый блок может быть отключен юзером / запрещен модератором, в каждом блоке набор атрибутов, значения которых выбираются из готового списка, эти списки могут быть выбраны с одним значением, также есть списки где можно выбрать несколько значений (причем список значений отличаются в зависимости от пола юзера), далее в анкете есть и текстовые поля - просто строка и RTE, итд... В целом это почти точное воспроизведение анкет, как они строятся на mamba.ru, все элементы, которые есть у них, у меня тоже присутствуют, только у меня таких анкет несколько типов (в зависимости от профессии юзера) и у некоторых юзеров сразу несколько типов анкет.

Если перед выводом строить всю объектную модель анкеты в деталях, со всеми этими вложенными сущностями, потом загружать в нее данные из БД, а потом только пускать в шаблонизатор, как это должно делаться в DDD, то все это займет кучу времени, мне это не подошло. У меня шаблонизатор работает напрямую с БД, и я один раз описав модель, больше не думаю о ней, а только указываю, что именно сейчас мне надо вывести.
Плюс этого подхода, что рендеринг работает быстро, минус, что модель размазана - в одном месте модель описана для рендеринга, в другом месте модель для бизнес логики - отправка посланий, редактирование анкет итп.

Последний раз редактировалось jettero; 05.07.2009 в 04:14
jettero вне форума   Ответить с цитированием
Старый 05.07.2009, 15:27   #14
void
Senior Member
 
Аватар для void
 
Регистрация: 14.03.2006
Адрес: Russia, Penza
Сообщений: 1,504
Отправить сообщение для void с помощью ICQ
По умолчанию

Месье знает толк в извращениях, однозначно =)
__________________
TYPO3 FAQ
void вне форума   Ответить с цитированием
Старый 06.07.2009, 14:09   #15
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

Каждый через это проходит. 8=)

И вообще говоря может быть целью является и не результат, а сам путь.

Собственно, Вы уверены в свое правоте, и это главное.
Удачи.
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Старый 06.07.2009, 17:33   #16
jettero
Senior Member
 
Регистрация: 24.06.2006
Сообщений: 143
По умолчанию

Цитата:
Сообщение от Pavel Antonov Посмотреть сообщение
Каждый через это проходит. 8=)

И вообще говоря может быть целью является и не результат, а сам путь.
На самом деле важен именно результат, на создание беты проекта на TYPO3 я потратил примерно в 3 раза меньше времени, чем уходит на аналогичный на фреймворке типа Симфони (на питоне не пишу, поэтому за Джангу не скажу), экономия времени разработки за счет готовой админки и готовых базовых фич, о которых я писал выше.
В основном экономия за счет админки конечно же - чтобы сделать с нуля такой интерфейс, как я построил на IRRE элементах, может уйти и полгода. Автоматическая генерация админок во фреймворках способна делать только простые вещи, таблицы со множеством связей редактировать так не получится.
Ну и рендеринг с моей библиотекой работает в 2 раза быстрее, чем с ORM. (с выключенным кешем). И памяти расходуется меньше. В моем случае важна именно скорость, поэтому забил на удобство ORM'a, но никто не мешает под TYPO3 использовать его.

Цитата:
Сообщение от Pavel Antonov Посмотреть сообщение
Собственно, Вы уверены в свое правоте, и это главное.
Удачи.
Спасибо

Если этот проект разрастется конечно нужно будет уходить от TYPO3 и делать с нуля, даже без фреймворка. Я это заранее предусмотрел и библиотеки, написанные мной, могут работать и без TYPO3, например вместо TS шаблонов у меня могут использоваться и YAML файлы. Но это еще не скоро понадобится, если понадобится, а для быстрого старта проекта TYPO3 – самое то, только надо хорошо знать ее внутренности.
jettero вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Typo3 и шаблоны... и новичек! Aha Вопросы выбора CMS 14 23.02.2014 23:16
Настройки параметров ImageMagick для TYPO3 на FreeBSD и Linux Valery Romanchev Мастер-класс 9 25.06.2013 22:38
UPD: Требуется специалист(ы) по Typo3 в Rich Media Development. Pavel Antonov Работа и заказы / Job Offer and Request 0 20.05.2008 13:59
Требуется специалист(ы) по Typo3 удаленно Pavel Antonov Работа и заказы / Job Offer and Request 4 12.07.2006 12:46
Несколько вопросов по TYPO3 Александр Д. Общие вопросы 11 26.01.2006 19:29


Часовой пояс GMT +4, время: 05:36.


Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot

Хостинг и техническая поддержка: TYPO3 Лаборатория