Изучаем Joomla с нуля. Сравнение с Processwire и Wordpress.

Изучаем Joomla с нуля. Сравнение с Processwire и Wordpress.

Некоторое время назад я подробно разбирал, почему WordPress со своей архитектурой "блога" и попыткой натянуть её на всё подряд, вплоть до интернет-магазинов, подвиг меня перейти на CMS Processwire

Однако, опыт работы с реальными клиентами и управление проектами показали, что эстетичность кода - это далеко не самое важное. Всё это привело меня к тому, что я выбрал Joomla. В этой статье я хочу рассказать, почему я сделал этот выбор и какие преимущества получил. На этот раз буду сравнивать ещё и с Wordpress, потому что когда-то я с неё тоже ушёл. 

Предсказуемость Joomla и свобода ProcessWire

Processwire

Главный плюс ProcessWire - полная свобода: каждая страница - это объект, к которому можно привязать любые поля. Звучит круто, пока проект делаешь только ты. Но вся эта свобода в конце концов приводит к тому, что заказчик или контент-менеджер:

  • может создать страницу не с тем шаблоном или не в том узле дерева, сломав тем самым отображение сайта. 
  • создать документ, не соблюдая вложенность. Например, дизайн блока рассчитан на то, что на странице будут подкатегории с иконками. Контент-менеджер публикует обычную статью в корне, забывает выставить нужный тип шаблона в CMS, и на выходе ломается верстка, так как макет не получает ожидаемых полей.

Joomla

Здесь всё иначе: есть проверенная годами строгая иерархия (Категории -> Материалы / Модули), за счёт чего движок мягко ограничивает пользователя, давая предсказуемость. Меню - это отдельная сущность, категории - отдельная, материалы - отдельная. Заказчик физически не сможет "развалить" структуру сайта, просто добавляя новую статью. Или же, разработчику будет проще предусмотреть те или иные моменты, ввиду упомянутой предсказуемости архитектуры. 

Шаблоны и позиции: возвращаем удобство WordPress, но без его хаоса

Processwire

Если заказчику нужно вывести баннер, форму или акционный блок на трех конкретных страницах, у него один путь - идти к разработчику. Разработчик открывает IDE, лезет в PHP-шаблон и пишет очередное условие.

Joomla

Как и в WordPress, клиент может управлять выводом виджетов сам: достаточно выбрать визуальную позицию в шаблоне и галочками отметить пункты меню, где модуль должен отображаться. Можно взять тему с визуальным конструктором (YOOtheme, SP Page Builder) или же использовать чистый шаблон, а благодаря Layout Overrides сделать верстку идеально чистой прямо в теме, не трогая ядро. 

Экосистема и готовые решения: когда чистый код уступает здравому смыслу

Processwire

Минимальное количество модулей сначала кажется плюсом - мол, нет мусора. Но на элементарной задаче (например, форма обратной связи) это оборачивается проблемой: вы либо покупаете платный модуль, либо садитесь и пишете на API валидацию, AJAX, обработку ошибок, защиту от спама и отправку писем вручную. Для обычного сайта это нерациональная трата времени и денег.

Joomla

Вы берете проверенное решение, тратите несколько минут на его настройку в админке - и получаете защищенную форму с записью в базу и уведомлениями. И хотя у популярных CMS есть риск установки лишнего, в Joomla давно сформировался костяк надежных "золотых" расширений, которые обновляются годами и работают как часы.

Фактор развития и безопасность будущего

Processwire

Это, по сути, проект одного человека (Ryan Cramer). Поэтому если автор решит сменить сферу деятельности или устанет, экосистема рискует остановиться в развитии. Плюс, ввиду того, что PW не так популярна, под неё значительно сложнее искать сторонних исполнителей.

Joomla

Полноценный Open Source с международной организацией (Open Source Matters), четким графиком релизов, голосованиями и огромным мировым сообществом. Как следствие, проекты, сделанные на этой CMS, будут поддерживаться и через 5, и через 10 лет, а под сам движок легко найти разработчика из-за его популярности и огромного объёма документации. 

Вывод

Переход с ProcessWire на Joomla не был для меня отказом от качества. Это был переход от позиции "я пишу всё кодом, потому что я программист" к позиции "я создаю продукт, который должен эффективно работать и легко поддерживаться". А когда ты выбираешь инструмент для коммерческой разработки, важно думать на пару лет вперед. 

Joomla дала мне лучшее из того, что мне нравилось в других CMS:

  1. Как в фреймворках и ProcessWire: грамотную MVC-архитектуру и чистый OOP-PHP.

  2. Как и в WordPress: такую же богатую экосистему готовых решений, гибкую работу с позициями модулей из админки и возможность передать сайт клиенту, не превращаясь в его бессменного техсаппорта.