Перейти к содержанию

ProcessWire

Материал из Википедии — свободной энциклопедии
ProcessWire
Логотип программы ProcessWire
Тип Система управления контентом и веб-фреймворк
Разработчик Райан Крамер (Ryan Cramer)
Написана на PHP[1]
Языки интерфейса английский и другие
Последняя версия 3.0.255 (16 января 2026)
Репозиторий github.com/processwire/p…
Лицензия Mozilla Public License 2.0
Сайт processwire.com

ProcessWire — свободная система управления содержимым (CMS), фреймворк для управления контентом (CMF) и веб-фреймворк (WAF) с открытым исходным кодом, написанный на языке программирования PHP. Распространяется под лицензией Mozilla Public License 2.0. ProcessWire построен вокруг API с соглашениями по использованию и именованию, аналогичными JavaScript-фреймворку jQuery. Заявленная цель API — обеспечить такой же уровень доступности и контроля над страницами веб-сайта, какой jQuery обеспечивает для DOM.[2] Контент управляется либо через API, либо через веб-интерфейс панели управления. ProcessWire в основном используется для разработки веб-сайтов, веб-приложений, сервисов, контент-фидов и связанных приложений.

Возможности

[править | править код]
  • API в стиле jQuery с полной документацией[3]
  • Графический веб-установщик
  • Все поля являются пользовательскими полями, индексируемыми для операций поиска в API
  • Может быть загружен из других PHP-приложений или скриптов командной строки[4]
  • Интерактивные функции обработки изображений на основе API
  • Древовидный список страниц с возможностью перетаскивания
  • Загрузка и редактирование файлов и изображений методом перетаскивания
  • Поддержка крупномасштабных установок (более 100 000 страниц)
  • Использование строковых селекторов для вызовов API[5]
  • Система контроля доступа на основе ролей
  • Основной акцент разработки на безопасности[6]
  • Агностическая разметка вывода, оставляющая весь вывод разработчику
  • Файлы шаблонов основаны на PHP, шаблонизатор по умолчанию не используется
  • Кэширование вывода целых страниц или отдельных частей
  • Многоязычная поддержка с многоязычными текстовыми полями и URL[7]
  • Модульная архитектура плагинов и доступные сторонние модули[8]
  • Типы полей и ввода сами являются модулями-плагинами
  • Система хуков, позволяющая перехватывать и изменять большинство основных функций[9]
  • Поля и группы полей могут повторяться с использованием встроенных типов полей Repeater
  • Поддержка редактирования форматированного текста с помощью CKEditor
  • Несколько вариантов дизайна темы администратора, включая современную тему «Konkat Default»
  • Возможности редактирования на стороне клиента, встроенные в ядро
  • Поддержка пространств имён PHP

Модули и расширяемость

[править | править код]

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

  • Основные модули — включены в ядро ProcessWire в каталоге `/wire/modules/`. Многие предустановлены, другие доступны для установки в один клик
  • Модули сайта — сторонние или пользовательские модули, установленные в каталоге `/site/modules/`
  • Pro-модули — коммерческие модули, разработанные ведущим разработчиком, обеспечивающие расширенную функциональность

По состоянию на 2026 год в каталоге модулей ProcessWire доступно более 637 модулей.[10] Относительно меньшее количество модулей по сравнению с другими CMS-платформами, такими как WordPress, объясняется богатым функционалом ядра ProcessWire, которое включает встроенную функциональность, которая в противном случае требовала бы отдельных плагинов.[11]

Типы модулей

[править | править код]

ProcessWire поддерживает несколько предопределённых типов модулей:

  • Модули Fieldtype — определяют пользовательские типы полей для хранения различных видов данных
  • Модули Inputfield — обеспечивают интерфейсы ввода для полей в администраторской части
  • Модули Process — создают административные страницы и процессы
  • Модули Textformatter — форматируют и преобразуют текстовый вывод
  • Модули Markup — генерируют разметку и HTML
  • Модули Autoload — загружаются автоматически при запуске ProcessWire, полезны для хуков

Установка модулей упрощена несколькими методами: загрузка ZIP-файлов через администраторскую панель, предоставление URL-адресов загрузки или ручное размещение файлов в каталоге модулей.

Коммерческие Pro-модули

[править | править код]

ProcessWire предлагает несколько коммерческих Pro-модулей, разработанных Райаном Крамером, ведущим разработчиком:

  • FormBuilder — комплексный инструмент для создания и управления формами без программирования[12]
  • ProFields — коллекция мощных типов полей, включая Repeater Matrix, Table, Combo и модули Custom Fields[13]
  • ProCache — расширенный модуль кэширования для оптимизации производительности
  • ProMailer — инструменты управления электронной почтой
  • ProDrafts — управление черновиками и версиями
  • ListerPro — расширенный список и управление страницами
  • LoginRegisterPro — полная система регистрации и входа пользователей

Доходы от Pro-модулей поддерживают дальнейшую разработку бесплатного ядра ProcessWire.

Целевая аудитория

[править | править код]

До и во время разработки веб-сайта или приложения целевая аудитория ProcessWire состоит в основном из веб-разработчиков и веб-дизайнеров.[14] В рамках этой аудитории ProcessWire используется как инструмент разработки и как CMS.

После разработки аудитория меняется на людей, которые управляют контентом для веб-сайтов и приложений, которые обычно не являются веб-дизайнерами/разработчиками. Эта аудитория использует ProcessWire в первую очередь как CMS для управления контентом.

Сообщество

[править | править код]

ProcessWire имеет активное глобальное сообщество разработчиков и пользователей. Основным центром сообщества является форум поддержки на processwire.com/talk, который включает разделы для:

  • Общей поддержки и вопросов разработки API
  • Разработки и поддержки модулей
  • Витрины веб-сайтов, созданных с помощью ProcessWire
  • Обсуждений многоязычной поддержки
  • Обсуждений безопасности
  • Доски вакансий для найма разработчиков ProcessWire

Сообщество известно своей дружелюбной и полезной атмосферой с активным участием как пользователей, так и ведущего разработчика. ProcessWire поддерживает еженедельную рассылку новостей и ProcessWire Weekly, независимое издание Теппо Койвулы, освещающее новости ProcessWire и темы веб-разработки.

Сообщество разработало множество сторонних модулей, профилей сайтов и руководств. Раздел витрины на официальном веб-сайте представляет веб-сайты, созданные с помощью ProcessWire, от небольших бизнес-сайтов до крупных институциональных веб-сайтов.

ProcessWire находится в активной разработке с 2003 года. С 2003 по 2007 год он разрабатывался под названием Dictator CMS. С 2007 по 2010 год он разрабатывался как ProcessWire 1.x. ProcessWire стал проектом сообщества с открытым исходным кодом в 2010 году и в настоящее время разрабатывается как ProcessWire 2.x и 3.x.[15]

С момента первого выпуска с открытым исходным кодом ProcessWire имел несколько значительных релизов версий. Версия 3.0, выпущенная в сентябре 2016 года, ознаменовала второй крупный выпуск версии, представив пространства имён PHP, возможности редактирования на стороне клиента и поддержку скомпилированных модулей.[16]

Версия 3.0.255, выпущенная 16 января 2026 года, представила несколько важных улучшений:

  • Новую современную тему дизайна администратора под названием «Konkat Default», созданную Konkat Studio (Ян Плох и Диого Оливейра), обеспечивающую более современный вид, который можно переключать с оригинальным дизайном «Core Original»
  • Улучшенную функциональность Markup Regions, позволяющую изменять области разметки из файлов, которые ранее только определяли их
  • Расширенную документацию API для примерно 50 основных модулей
  • Обновления основных функций JavaScript API для использования модальных окон Uikit вместо модальных окон Vex
  • Новые методы JavaScript API для кодирования/декодирования сущностей
  • Введение модуля ZipFileValidator для повышения безопасности[17]

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

Переводы и сообщество

[править | править код]

ProcessWire имеет активные глобальные сообщества конечных пользователей и разработчиков. Эти сообщества перевели ProcessWire с английского на свои родные языки, включая: китайский, хорватский, чешский, нидерландский, французский, немецкий, греческий, Иврит, венгерский, итальянский, японский, португальский, русский, словацкий, испанский, шведский, турецкий, украинский и вьетнамский. Центральный узел сообществ ProcessWire находится на форумах поддержки разработчиков.[14]

Сравнение с другими платформами

[править | править код]

ProcessWire часто сравнивают с другими системами управления контентом, особенно с WordPress. Официальное сравнение подчёркивает несколько ключевых различий:

  • ProcessWire создан как фреймворк в первую очередь, с CMS в качестве приложения поверх него, в то время как WordPress возник как платформа для ведения блогов
  • Все поля в ProcessWire по умолчанию являются пользовательскими полями, тогда как WordPress различает стандартные и пользовательские поля
  • ProcessWire использует иерархическую древовидную структуру страниц для всего контента, в то время как WordPress использует отдельные типы записей и таксономии
  • ProcessWire делает акцент на контроле разработчика над разметкой вывода, будучи агностичным к разметке, в то время как WordPress использует системы тем
  • ProcessWire имеет меньшую экосистему модулей (более 600 модулей) по сравнению с WordPress (более 40 000 плагинов), в основном потому, что основная функциональность более полная[18]

Награды и публикации

[править | править код]

В ноябре 2016 года ProcessWire был награждён CMS Critic как лучшая CMS для малого бизнеса.[19]

В июле 2016 года Smashing Magazine опубликовал статью A Beginners Guide to ProcessWire.[20]

С января 2016 года Envato Tuts+ опубликовал несколько статей и руководств по ProcessWire.[21]

В январе 2015 года ProcessWire был награждён CMS Critic как лучшая бесплатная PHP CMS.[22]

В декабре 2014 года PHP Architect опубликовал статью ProcessWire: Flexibility, Power, and a Generous Dose of Pure Fun.[23]

В декабре 2012 года ProcessWire был награждён CMS Critic как лучшая бесплатная CMS.[24]

Архитектура

[править | править код]

ProcessWire построен вокруг дерева контента страниц (в отличие от системы корзин). URL-адрес или путь каждой страницы всегда отражает её место в иерархии. Тот же путь используется для ссылки на страницу в API. В результате эта связь пути с внутренней древовидной иерархией определяет архитектуру ProcessWire. Помимо отношения родитель-потомок, подразумеваемого деревом контента, ProcessWire поддерживает реляционные ссылки один-к-одному и один-ко-многим между страницами в дереве.

Архитектура шаблонов

[править | править код]

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

Шаблоны опционально имеют связанный PHP-файл, называемый файлом шаблона. Этот файл выполняется всякий раз, когда осуществляется доступ к URL-адресу страницы, использующей шаблон. В результате файлы шаблонов обычно используются для целей вывода. Файлу шаблона предоставляется несколько переменных API, наиболее примечательной из которых является переменная API $page, которая содержит все поля и контент текущей просматриваемой страницы.[25]

Файлы шаблонов служат нескольким контекстам в зависимости от приложения. Профили веб-сайтов ProcessWire по умолчанию используют файлы шаблонов в основном для вывода прямой и динамически генерируемой HTML-разметки. Файлы шаблонов также могут использоваться как промежуточные контроллеры между моделью и отдельным представлением. Поскольку файлы шаблонов являются обычными PHP-файлами, они могут вызывать другие веб-сервисы или PHP-приложения, где это необходимо, без отдельного уровня парсинга.

Архитектура полей

[править | править код]

Все поля в ProcessWire являются пользовательскими полями, определёнными пользователем. Данное поле может быть назначено нескольким шаблонам, которые, в свою очередь, содержат отдельные фрагменты контента для каждой страницы, использующей этот шаблон. Каждое поле имеет тип, называемый «fieldtype» (одно слово), тип модуля плагина. ProcessWire включает несколько модулей fieldtype, в том числе те, которые поддерживают текст, числа, файлы, изображения, ссылки на страницы, URL-адреса, адреса электронной почты, даты и комментарии. Дополнительные модули fieldtype устанавливаются как сторонние модули.

Структура страниц

[править | править код]

ProcessWire использует иерархическую древовидную структуру для организации всего контента в виде страниц. Эта структура похожа на файловую систему без ограничений глубины. Система спроектирована так, чтобы масштабироваться от одностраничных веб-сайтов до установок с миллионами страниц, сохраняя при этом постоянную производительность и простоту использования. Вся навигация и отношения между контентом основаны на этой древовидной структуре, которую можно обходить как через административный интерфейс, так и через API.

Безопасность

[править | править код]

ProcessWire уделяет большое внимание безопасности на протяжении всей разработки ядра. Система включает:

  • Контроль доступа на основе ролей с детальными разрешениями
  • Встроенная защита от распространённых уязвимостей (SQL-инъекции, XSS, CSRF)
  • Регулярные аудиты безопасности и обновления
  • Инструменты валидации и очистки во всём API
  • Валидация и меры безопасности при загрузке файлов
  • Функции безопасности сеанса

ProcessWire поддерживал хорошую репутацию в области безопасности на протяжении всей своей истории без серьёзных инцидентов безопасности или сбоев.[26]

Распространение и требования

[править | править код]

Исходный код ProcessWire размещён на GitHub и также распространяется через Softaculous, Bitnami и Composer/Packagist.

ProcessWire работает на платформе AMP (Apache, MySQL или MariaDB, PHP), используемой многими хостинг-провайдерами и средами веб-разработки. ProcessWire требует PHP версии 5.3.8 или новее и MySQL или MariaDB 5.0.15 или новее.[27]

Известные реализации

[править | править код]

ProcessWire используется на разнообразных веб-сайтах, включая:

  • Правительственные и институциональные веб-сайты
  • Туристические и маркетинговые сайты направлений
  • Корпоративные веб-сайты
  • Платформы электронной коммерции
  • Новостные и медиа-издания
  • Образовательные учреждения
  • Культурные организации и музеи

Гибкость платформы делает её подходящей как для простых веб-сайтов, так и для сложных веб-приложений.

Примечания

[править | править код]
  1. ↑ The processwire Open Source Project on Open Hub: Languages Page — 2006.
  2. ↑ The concept behind the API (англ.). Дата обращения: 8 февраля 2026. Архивировано из оригинала 23 декабря 2018 года.
  3. ↑ ProcessWire API reference documentation (англ.). Дата обращения: 8 февраля 2026. Архивировано 17 февраля 2026 года.
  4. ↑ Bootstrapping ProcessWire (англ.). Дата обращения: 8 февраля 2026. Архивировано 25 декабря 2018 года.
  5. ↑ Selectors in ProcessWire (англ.). Дата обращения: 8 февраля 2026. Архивировано 6 января 2019 года.
  6. ↑ ProcessWire Security (англ.). Дата обращения: 8 февраля 2026. Архивировано 7 февраля 2026 года.
  7. ↑ Multi-language support (англ.). Дата обращения: 8 февраля 2026. Архивировано 2 января 2019 года.
  8. ↑ Directory of modules (англ.). Дата обращения: 8 февраля 2026. Архивировано 28 октября 2020 года.
  9. ↑ ProcessWire Hooks (англ.). Дата обращения: 8 февраля 2026. Архивировано 6 января 2019 года.
  10. ↑ ProcessWire modules directory (англ.). Дата обращения: 8 февраля 2026. Архивировано 9 февраля 2026 года.
  11. ↑ A Beginner's Guide to ProcessWire (англ.). Smashing Magazine (22 июля 2016). Дата обращения: 8 февраля 2026. Архивировано 17 февраля 2026 года.
  12. ↑ FormBuilder (англ.). Дата обращения: 8 февраля 2026. Архивировано 17 февраля 2026 года.
  13. ↑ ProFields (англ.). Дата обращения: 8 февраля 2026. Архивировано 17 февраля 2026 года.
  14. 1 2 ProcessWire community (англ.) (26 января 2024). Дата обращения: 8 февраля 2026. Архивировано 1 февраля 2026 года.
  15. ↑ ProcessWire history and background (англ.). Дата обращения: 8 февраля 2026. Архивировано 7 февраля 2026 года.
  16. ↑ ProcessWire 3.0 changelog (англ.). Дата обращения: 8 февраля 2026. Архивировано 17 февраля 2026 года.
  17. ↑ ProcessWire 3.0.255 new main/master version (англ.) (23 января 2026). Дата обращения: 8 февраля 2026. Архивировано 9 февраля 2026 года.
  18. ↑ WordPress vs ProcessWire comparison (англ.). Дата обращения: 8 февраля 2026. Архивировано 7 февраля 2026 года.
  19. ↑ CMS Critic 2016 awards (November 2016) (англ.) (12 ноября 2012). Дата обращения: 8 февраля 2026. Архивировано 2 февраля 2019 года.
  20. ↑ Smashing Magazine: A Beginners Guide to ProcessWire (англ.) (22 июля 2016). Дата обращения: 8 февраля 2026. Архивировано 17 февраля 2026 года.
  21. ↑ Envato Tuts+: ProcessWire tutorials and articles (англ.) (22 августа 2017). Дата обращения: 8 февраля 2026. Архивировано 26 сентября 2020 года.
  22. ↑ CMS Critic Best Free PHP CMS award (January 2015) (англ.) (21 января 2015).
  23. ↑ ProcessWire published in PHP Architect Magazine (December 2014) (англ.).
  24. ↑ CMS Critic Best Free CMS award (December 2012) (англ.) (3 декабря 2012). Дата обращения: 8 февраля 2026. Архивировано 17 февраля 2026 года.
  25. ↑ The $page API variable (англ.). Дата обращения: 8 февраля 2026. Архивировано 8 февраля 2026 года.
  26. ↑ What's unique about ProcessWire (англ.). Дата обращения: 8 февраля 2026. Архивировано 17 февраля 2026 года.
  27. ↑ How to install ProcessWire CMS (англ.). processwire.com. Дата обращения: 2 мая 2024.