ProcessWire
ProcessWire — свободная система управления содержимым (CMS), фреймворк для управления контентом (CMF) и веб-фреймворк (WAF) с открытым исходным кодом, написанный на языке программирования PHP. Распространяется под лицензией Mozilla Public License 2.0. ProcessWire построен вокруг API с соглашениями по использованию и именованию, аналогичными JavaScript-фреймворку jQuery. Заявленная цель API — обеспечить такой же уровень доступности и контроля над страницами веб-сайта, какой jQuery обеспечивает для DOM. Контент управляется либо через API, либо через веб-интерфейс панели управления. 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 используется на разнообразных веб-сайтах, включая:
- Правительственные и институциональные веб-сайты
- Туристические и маркетинговые сайты направлений
- Корпоративные веб-сайты
- Платформы электронной коммерции
- Новостные и медиа-издания
- Образовательные учреждения
- Культурные организации и музеи
Гибкость платформы делает её подходящей как для простых веб-сайтов, так и для сложных веб-приложений.
Примечания
[править | править код]- ↑ The processwire Open Source Project on Open Hub: Languages Page — 2006.
- ↑ The concept behind the API (англ.).
- ↑ ProcessWire API reference documentation (англ.).
- ↑ Bootstrapping ProcessWire (англ.).
- ↑ Selectors in ProcessWire (англ.).
- ↑ ProcessWire Security (англ.).
- ↑ Multi-language support (англ.).
- ↑ Directory of modules (англ.).
- ↑ ProcessWire Hooks (англ.).
- ↑ ProcessWire modules directory (англ.).
- ↑ A Beginner's Guide to ProcessWire (англ.). Smashing Magazine (22 июля 2016).
- ↑ FormBuilder (англ.).
- ↑ ProFields (англ.).
- ↑ 1 2 ProcessWire community (англ.) (26 января 2024).
- ↑ ProcessWire history and background (англ.).
- ↑ ProcessWire 3.0 changelog (англ.).
- ↑ ProcessWire 3.0.255 new main/master version (англ.) (23 января 2026).
- ↑ WordPress vs ProcessWire comparison (англ.).
- ↑ CMS Critic 2016 awards (November 2016) (англ.) (12 ноября 2012).
- ↑ Smashing Magazine: A Beginners Guide to ProcessWire (англ.) (22 июля 2016).
- ↑ Envato Tuts+: ProcessWire tutorials and articles (англ.) (22 августа 2017).
- ↑ CMS Critic Best Free PHP CMS award (January 2015) (англ.) (21 января 2015).
- ↑ ProcessWire published in PHP Architect Magazine (December 2014) (англ.).
- ↑ CMS Critic Best Free CMS award (December 2012) (англ.) (3 декабря 2012).
- ↑ The $page API variable (англ.).
- ↑ What's unique about ProcessWire (англ.).
- ↑ How to install ProcessWire CMS (англ.). processwire.com. Дата обращения: 2 мая 2024.
Ссылки
[править | править код]- processwire.com (англ.) — официальный сайт ProcessWire
- Сравнение ProcessWire и WordPress
- Каталог модулей ProcessWire
- Форумы поддержки ProcessWire