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

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 (англ.).
  3. ProcessWire API reference documentation (англ.).
  4. Bootstrapping ProcessWire (англ.).
  5. Selectors in ProcessWire (англ.).
  6. ProcessWire Security (англ.).
  7. Multi-language support (англ.).
  8. Directory of modules (англ.).
  9. ProcessWire Hooks (англ.).
  10. ProcessWire modules directory (англ.).
  11. A Beginner's Guide to ProcessWire (англ.). Smashing Magazine (22 июля 2016).
  12. FormBuilder (англ.).
  13. ProFields (англ.).
  14. 1 2 ProcessWire community (англ.) (26 января 2024).
  15. ProcessWire history and background (англ.).
  16. ProcessWire 3.0 changelog (англ.).
  17. ProcessWire 3.0.255 new main/master version (англ.) (23 января 2026).
  18. WordPress vs ProcessWire comparison (англ.).
  19. CMS Critic 2016 awards (November 2016) (англ.) (12 ноября 2012).
  20. Smashing Magazine: A Beginners Guide to ProcessWire (англ.) (22 июля 2016).
  21. Envato Tuts+: ProcessWire tutorials and articles (англ.) (22 августа 2017).
  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).
  25. The $page API variable (англ.).
  26. What's unique about ProcessWire (англ.).
  27. How to install ProcessWire CMS (англ.). processwire.com. Дата обращения: 2 мая 2024.