1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Основные преимущества XenForo для программистов

Тема в разделе "Основные вопросы по XenForo", создана пользователем CyberAP, 19.04.2012.

Загрузка
  1. CyberAP

    CyberAP Местный

    Регистрация:
    05.10.10
    Сообщения:
    2 604
    Симпатии:
    1 660
    Версия XF:
    1.5.10
    Пишу статью для хабра, чтобы повысить популярность XenForo. Я опишу там чем хорош XenForo для пользователей форумов, для администраторов и модераторов, для дизайнеров и верстальщиков, и для программистов. Проблема у меня возникает только с последним пунктом, так как не могу его объективно оценить. В связи с этим прошу всех знатоков подключиться к теме и рассказать чем хорош движок в плане кода. Отрицательные аргументы тоже приветствуются. Можно даже проводить аналогии с другими популярными платными движками (IPB, vBulletin). Цитаты включу в статью с указанием авторства.
     
    TAIFUN и Динарейка нравится это.
  2. maus

    maus Местный

    Регистрация:
    27.03.12
    Сообщения:
    187
    Симпатии:
    129
    Я бы назвал два главных преимущества перед phpBB, SMF, IPB, VB, Discuz в плане архитектуры:

    1. Код форума основан на Zend Framework, следует его стандартам написания и форматирования кода и использует аналогичные ему паттерны проектирования, как у всех современных фреймворков: на входе имеем фронт-контроллер с DI, за ним роутинг, обеспечивающий ЧПУ, и, наконец, MVC-архитектуру, заточенную под форум - в каждый контроллер и шаблон насильно вытягиваются данные о текущей сессии пользователя, его правах доступа и так далее.
    Из этого важные следствия: 1) низкий порог вхождения для современных разработчиков. Научиться писать модули можно за один рабочий день. 2) Удобство поиска нужных участков кода, так как все классы раскиданы по папкам в соответствии с назначением и их использование легко прослеживается в коде.

    2. Разработчики форума сделали серьезную ставку на создаваемые сообществом модули.
    Во-первых, в отличие от вышеперечисленных форумов, в Ксене практически никогда не требуется редактировать код самого форума, любую модель и любой контроллер можно переопределить в модуле и задать свое поведение стандартным страницам. Модули легко переживают обновления форума и так же легко отключаются в случае проблем. Никогда не требуется вклиниваться между строк кода форума - даже внутри контроллеры и модели разбиты на вспомогательные методы, которые наиболее вероятно будут заменены или обернуты при расширении - проверки прав, проверки перед сохранением данных и так далее.
    Во-вторых, разработчики предусмотрели использование сторонним кодом практически каждой возможности форума - можно создавать свои страницы и встраивать их в навигацию форума, можно посылать свои оповещения, использовать в своем коде загрузчик приложенных файлов, определять свои типы содержимого для системы поиска, права доступа и настройки узлов форума.
     
    lionpc, Динарейка и CyberAP нравится это.
  3. guiltar

    guiltar Местный

    Регистрация:
    15.04.11
    Сообщения:
    137
    Симпатии:
    231
    Еще одно преимущество - яваскрипт обертка для jQuery. Анимация, всевозможные вставки с активацией, автокомплит и всплывающие окна делаются довольно просто. Чаще всего даже не приходится делать отдельный шаблон и контроллер для json и для обычной загрузки. А в сложных случаях можно обойтись лишь расширение вида.

    К недостаткам можно отнести встроенную систему хуков, которая снижает производительнось и подмывает паттерн MVC. Сами разработчики это понимают и говорят, что это временное решение. Отсутствие ORM не позволяет подключать различные базы данных.
     
    Динарейка и CyberAP нравится это.
  4. maus

    maus Местный

    Регистрация:
    27.03.12
    Сообщения:
    187
    Симпатии:
    129
    Если о недостатках, то лично мне не нравится, что стандартные методы всегда приходится либо обертывать, либо переписывать с нуля. Могли бы предусмотреть событийную систему, как в Вордпрессе или Друпале.
     
    CyberAP нравится это.
  5. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Наверное, не правильно сравнивать CMS-системы с форумами. Уж слишком отличается ориентация движков. Соответственно, применение одного и того же фреймворка для CMS и форума будет различным. Также и различаются API готовых систем. Это, кстати, и определяет, что для Wordpress и Drupal нет ни одного вменяемого форума, а для XenForo нет ни одной вменяемой CMS. Готовые комбайны (IPB и VB), хотя и существуют, но имеют ряд проблем, которые приводят к тому, что появился и развивается тот же XenForo... Рассчитывать на то, что в XenForo в ближайшее время появится мощная CMS, не стОит.
    В результате пользуются популярностью различные бриджи между CMS и форумом.
    С галереями все сложнее. Основная проблема - нет действительно классной галереи с открытым кодом (не обязательно бесплатным!). Различные галереи, имеющиеся в IPB и в VB, не могут конкурировать даже с продвинутыми галереями с открытым и бесплатным кодом. До платных галерей - как до Луны пешком. А любая облачная галерея рвет по удобству любую доступную для установки на собственном хостинге. Увы.

    С точки зрения программиста XenForo является вполне логичным и законченным продуктом. Хотелок при этом остается еще очень много. Но по сравнению с конкурентами имеет все шансы за пару лет догнать их по количеству качественных расширений за счет хорошей архитектуры. Сами разработчики сетуют на то, что не могут в достаточной мере развивать XenForo из-за продолжительных судов и судебных издержек. Т.е. они не могут пока достаточно зарабатывать на своем продукте, чтобы нанять еще разработчиков.

    Также и реклама и популизация XenForo при ведущихся судебных разборках фактически нулевая. А это отталкивает множество потенциальных разработчиков расширений.
     
    maus и CyberAP нравится это.
  6. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    Мне кажется лучше не затрагивать ту сторону вопроса, в которой не разбираешься. Даже в виде цитат/мнений других программистов.
    С другой стороны, как "популярны" статьи по XF на Хабре, то это может в принципе вообще никакой роли не сыграть.
    Аудитория Хабра порой непредсказуема.
     
    slowpoke и infis нравится это.
  7. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    формально события как раз и есть в ксене, а на базе событий сделаны.
    Просто чтобы не делать 100500 событий сделали несколько в местах где можно расширить/наследовать классы.

    наверное имелись ввиду темплейт хуки :)
     
  8. maus

    maus Местный

    Регистрация:
    27.03.12
    Сообщения:
    187
    Симпатии:
    129
    При этом уже есть модули предотвращение дабл постинга, например, копирующие куски кода форума с незначительными изменениями. Вот они точно после обновления перестанут работать. Вот ваш VBTT взять - там, вроде как, всего одной правки в коде форума хватило - разве это не лучше? Ну или automod в phpBB - у него тоже очень хорошо с совместимостью.
     
  9. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    в булке было вообще без вариантов или копировать весь код скрипта или сделать миниправку. я выбрал 2-е.
    Если бы система была как сейчас в ксене - все сделал без каких-либо правок и копирований частей кода.
    Просто в ксен пришло много булко-разработчиков и как следствие иногда довольно странный программинг модулей

    P.S. В булке кстати тоже хорошо написанных модулей меньше 1%
     
    maus нравится это.
  10. guiltar

    guiltar Местный

    Регистрация:
    15.04.11
    Сообщения:
    137
    Симпатии:
    231
    Так это проблема плагина. Все можно было сделать без переписывания. Причем несколькими способами. Например, перед выполнением парента в контроллере проверить условие дабл постинга, если оно выполнено, то отредактировать предыдущее сообщение. Иначе вызывать парент.
     
    maus нравится это.

Поделиться этой страницей