Изучаем ProcessWire с нуля. Сравнение системы с Wordpress.

Этой статьёй я хочу представить серию уроков, в которых будет рассмотрен процесс разработки сайта на Processwire. Почему я решил остановиться именно на этой CMS, а не скажем на более популярной Wordpress? Так уж сложилось, что одно время я долго работал на WP, и поначалу он действительно мне казался одновременно простым и мощным. Но в какой-то момент на поддержку стали приходить сайты, которые по своей сути внешне являясь несложными, внутри больше напоминали комбайн с избыточным функционалом. Поддерживать всё это было довольно сложно. Давайте попробуем разобраться, почему так произошло.

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

Далее я постараюсь рассмотреть различные аспекты данных систем, на примере сравнительного анализа Wordpress с Processwire.

Расширения

Wordpress

Плюсы:

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

Минусы:

  1. Слишком большой соблазн накликать себе нужный функционал, устанавливая всё подряд. А это уже чревато медленной скоростью работы сайта, разрастанием проекта и как следствие сложностью его поддержки. Например, в Wordpress на каждое решение предлагается несколько плагинов, а значит если вы найдёте исполнителя, который знает как работает один плагин, то на освоение другого ему потребуется время, что в итоге повлияет на стоимость разработки.
  2. Большое количество уязвимостей. Собственно, тут всё закономерно, - чем больше популярность у движка, тем больше он будет получать внимания со стороны хакеров. И как следствие, тем больше вероятность того, что как в плагинах, так и в самой 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, требуется меньше строк кода для одного и того же действия.