![]() |
Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
|
|
|
|
#1 | |
|
Senior Member
Регистрация: 24.06.2006
Сообщений: 143
|
Цитата:
пока проблем не испытываю.Проблемы с кэшированием решаются не отключением кэширования страницы, а 1) USER_INT плагинами (которые на лету переключатся в USER, когда это можно), тогда вся страница кэшируется, кроме отдельных частей и проблем с меню итп не возникает 2) USER плагинами + коротким временем жизни кеша - например список пользователей можно делать через USER с экспайром кеша в 1 мин, тогда изменение профиля и состояние "online" будет обновлятся раз в минуту. Далее можно поднять фронтенд кэш через nginx + memcached, на этом форуме есть топик про evo_nginx_boost - там кэшируются даже страницы с USER_INT плагинами и, как я понял, тот плагин делали как раз для соц сети. В соцсети создание контента fe-пользователем как правило ограничивается редактированием профиля, комментариями и личными посланиями. Для таких вещей я сделал расширение которое занимается генерированием fe-форм и решает все эти задачи, в том числе редактирование личного фотоальбома. В планах стоит еще добавить ведение блога. Насчет нормальной комьюнити системы - для более-менее сложной соц сети нет готовых решений, например функционал mamba.ru или вконтакте нельзя реализовать на drupal. Если проект делается под большую нагрузку, то конечно надо сразу писать все с нуля без фреймворков и CMS. А если планируется одновременная работа всего до 200-300 юзеров на сайте, то на TYPO3 вполне можно сделать все что нужно В плюсе будет готовая админка (BE), готовая система FE кеширования, генерация меню, права доступа к контенту, локализация итп, то есть все те базовые фичи, про которые я писал выше и разработчику можно будет сосредоточится целиком на бизнес логике.
Последний раз редактировалось jettero; 04.07.2009 в 23:46 |
|
|
|
|
|
|
#3 |
|
Senior Member
Регистрация: 24.06.2006
Сообщений: 143
|
Да, был вариант делать под FLOW3 через DDD подход, но это все пока медленно очень работает, для соцети никак не подходит.
Сделал свое промежуточное решение, где SQL запросы собираются автоматически на основе описания модели, у меня это позволило выбирать из базы очень сложные связанные данные и сразу с локализацией (lang overlay) за один запрос. Некоторые такие запросы состоят из соединенных 20 таблиц. |
|
|
|
|
|
#6 |
|
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 |
|
|
|
![]() |
| Опции темы | |
| Опции просмотра | |
|
|
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| 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 |