Изучаем ProcessWire с нуля. Сравнение системы с Wordpress.
Этой статьёй я хочу представить серию уроков, в которых будет рассмотрен процесс разработки сайта на Processwire. Почему я решил остановиться именно на этой CMS, а не скажем на более популярной Wordpress? Так уж сложилось, что одно время я долго работал на WP, и поначалу он действительно мне казался одновременно простым и мощным. Но в какой-то момент на поддержку стали приходить сайты, которые по своей сути внешне являясь несложными, внутри больше напоминали комбайн с избыточным функционалом. Поддерживать всё это было довольно сложно. Давайте попробуем разобраться, почему так произошло.
Wordpress изначально предназначался для ведения блогов. Потом, в какой-то момент, возможно в связи с ростом популярности данного движка, сторонние разработчики всё больше стали писать для него плагины, которые решали задачи, выходящие за рамки блога. В итоге так и получилось, что CMS для блога, использует нестандартные решения, архитектура которых под Вордпресс не очень заточена. Отсюда, на мой взгляд, в итоге и имеем то, что имеем.
Далее я постараюсь рассмотреть различные аспекты данных систем, на примере сравнительного анализа Wordpress с Processwire.
Расширения
Wordpress
Плюсы:
большой каталог решений (в том числе и бесплатных) на все случаи жизни. Установка настолько проста и понятна, что даже неопытный пользователь может накликать себе нужное решение, не имея при этом навыков программирования.
Минусы:
- Слишком большой соблазн накликать себе нужный функционал, устанавливая всё подряд. А это уже чревато медленной скоростью работы сайта, разрастанием проекта и как следствие сложностью его поддержки. Например, в Wordpress на каждое решение предлагается несколько плагинов, а значит если вы найдёте исполнителя, который знает как работает один плагин, то на освоение другого ему потребуется время, что в итоге повлияет на стоимость разработки.
- Большое количество уязвимостей. Собственно, тут всё закономерно, - чем больше популярность у движка, тем больше он будет получать внимания со стороны хакеров. И как следствие, тем больше вероятность того, что как в плагинах, так и в самой CMS, всё чаще будут находить какие-либо уязвимости. Поэтому в идеале необходимо следить за тем, чтобы всё находились в обновленном состоянии. Подводный камень здесь в том, что при обновлении какого-либо плагина всегда есть вероятность того, что слетит что-то другое. То есть может случиться так, что одна часть плагинов может потребовать более новую версию Wordpress, но при этом другая часть может оказаться несовместимой с текущей версией движка.
Processwire
Плюсы:
По сравнению с Wordpress модулей не так много, но в данном случае это плюс, потому что перед публикацией в каталоге, решение подвергается более тщательной модерации, что уменьшает вероятность того, что при обновлении в системе что-то сломается.
Решений не так много, многие из них универсальны, а значит разработчику не придётся для решения одной задачи, изучать сразу несколько модулей, выполняющих одну и ту же задачу. Кроме того, многое решается через удобный API.
Минусы:
Мало модулей, ввиду относительно небольшой популярности.
Шаблоны
Wordpress
Плюсы:
Любую тему можно установить из магазина решений, причём некоторые темы имеют интерфейс, с помощью которого можно производить настройку непосредственно на самом сайте.
Недостатки:
Иногда можно встретить довольно громоздкие темы с кучей настроек и конструкторов. Однако такие темы избыточны, замедляют работу системы и плохо поддаются дальнейшей кастомизации.
Processwire
Плюсы:
Если вам понравилась какая-то тема и у вас есть её исходники, то просто берёте её код и внедряете на ваш сайт. Сама CMS поощряет такой подход и со своей стороны предлагает пользователю достаточно гибкую работу с шаблонами, конечно при условии что есть соответствующие познания в PHP и API Processwire.
Недостатки:
Накликать тему, как в WP, не получится. Но для многих это будет скорее плюсом, чем недостатком.
Функционал из коробки
Wordpress
Изначально из коробки есть только самое необходимое для ведения блога.
Processwire
В систему уже изначально заложено многое из того, что способно сделать работу с контентом более удобной: дополнительные поля, шаблоны и отображение ресурсов в виде дерева.
Процесс разработки
Wordpress
Например, чтобы реализовать каталог, как минимум необходимо было бы установить два плагина: один - для дополнительных полей, другой - для SEO. Если нужен слайдер или галерея, то так же ищем и устанавливаем соответствующие плагины.
Processwire
В случае данной CMS, система уже имеет всё для того, чтобы реализовать каталог. Раз дополнительные поля есть, значит на их основе можно будет реализовать как каталог, так и мета-тэги.
Аналогичный подход используется в случае галереи и слайдера – всё, что для этого нужно – уже есть в админке. Далее уже переходим на сайт любого понравившегося слайдера/галереи, читаем документацию, подключаем необходимые CSS/JS файлы, посредством API WP формируем необходимую HTML структуру.
Выводы
Итак, какую же систему я бы порекомендовал начинающему пользователю? Если вы не хотите разбираться как всё устроено изнутри с точки зрения кода, а CMS вы рассматриваете исключительно как инструмент, с помощью которого можно было бы вести уютный блог, то я бы рекомендовал вам Wordpress. Однако, если вы начинающий веб-разработчик, то вероятный выбор для вас - ProcessWire, поскольку там больше нужно писать кода, и как следствие больше пространства для творчества.
А чтобы внести свой вклад в популяризацию данной CMS, я решил вкратце рассмотреть процесс создания простого сайта с нуля на основе готового шаблона. Предполагается что этих основ будет достаточно для того, чтобы в дальнейшем понять принцип разработки на этом движке.
Задумано, что повторяя за мной каждый шаг, вы точно так же без проблем сможете создать что-то своё. Понятное дело, это не будет какой-то там супер навороченный сайт, но вполне себе симпатичный блог, при желании, может позволить себе каждый. Ну а при ещё большем желании – можно создать что-то и достаточно крутое. И это далеко не предел.
Ещё пару слов о Processwire
Кроме всего прочего, среди плюсов ProcessWire отмечу скорость работы и более понятное API, в силу того что разработчики видимо находили своё вдохновение в синтаксисе jQuery, чей лозунг звучит так – «write less, do more», что в буквальном переводе означает «пиши меньше, делай больше». То есть в Processwire, если сравнивать с Wordpress, требуется меньше строк кода для одного и того же действия.