ProcessWire
From Wikipedia, the free encyclopedia
ProcessWire est un système de gestion de contenu (CMS) libre et open source, un framework de gestion de contenu (CMF) et un framework d'application web (WAF) écrit dans le langage de programmation PHP. Il est distribué sous la Mozilla Public License 2.0. ProcessWire est construit autour d'une API avec des conventions d'utilisation et de dénomination similaires au framework JavaScript jQuery. L'objectif déclaré derrière l'API est de fournir le même niveau d'accessibilité et de contrôle sur les pages d'un site web que jQuery fournit au DOM[1]. Le contenu est géré soit via l'API, soit via le panneau de contrôle d'administration basé sur le web. ProcessWire est principalement utilisé pour le développement de sites web, d'applications web, de services, de flux de contenu et d'applications connexes.
| Développé par | Ryan Cramer |
|---|---|
| Dernière version | 3.0.255 |
| Dépôt | github.com/processwire/processwire |
| Écrit en | PHP |
| Système d'exploitation | Multiplateforme |
| Type | Système de gestion de contenu |
| Licence | Mozilla Public License 2.0 |
| Site web | processwire.com |
Fonctionnalités
- API de style jQuery avec documentation complète[2]
- Installateur graphique basé sur le web
- Tous les champs sont des champs personnalisés, indexés pour les opérations de recherche dans l'API
- Peut être amorcé à partir d'autres applications PHP ou scripts en ligne de commande[3]
- Fonctions interactives de manipulation d'images basées sur l'API
- Liste de pages arborescente avec glisser-déposer
- Téléchargement et édition de fichiers et d'images par glisser-déposer
- Support des installations à grande échelle (plus de 100 000 pages)
- Utilisation de sélecteurs basés sur des chaînes pour les appels API[4]
- Système de contrôle d'accès basé sur les rôles
- Accent du développement central sur la sécurité[5]
- Sortie agnostique du balisage, laissant toute la sortie au développeur
- Les fichiers de template sont basés sur PHP, aucun moteur de template n'est utilisé par défaut
- Mise en cache de sortie de pages entières ou de parties individuelles
- Support multilingue avec champs de texte et URLs multilingues[6]
- Architecture de plugin modulaire et modules tiers disponibles[7]
- Les types de champs et d'entrée sont eux-mêmes des modules de plugin
- Système de hooks permettant d'accrocher et de modifier la plupart des fonctions principales[8]
- Les champs et groupes de champs sont répétables en utilisant les types de champs Repeater intégrés
- Support de l'édition de texte riche en utilisant CKEditor
- Plusieurs options de conception de thème d'administration, y compris le thème moderne "Konkat Default"
- Capacités d'édition frontale intégrées dans le noyau
- Support des espaces de noms PHP
Modules et extensibilité
ProcessWire possède une architecture de plugin modulaire où les modules servent de méthode principale pour étendre les fonctionnalités. À la base, ProcessWire lui-même est en grande partie une collection de modules, l'application d'administration étant entièrement composée de modules. Les modules dans ProcessWire se déclinent en plusieurs variétés :
- Modules du noyau - Inclus avec le noyau ProcessWire dans le répertoire `/wire/modules/`. Beaucoup sont préinstallés, tandis que d'autres sont disponibles pour une installation en un clic
- Modules du site - Modules tiers ou personnalisés installés dans le répertoire `/site/modules/`
- Modules Pro - Modules commerciaux développés par le développeur principal qui fournissent des fonctionnalités avancées
En 2026, il y a plus de 637 modules disponibles dans le répertoire des modules ProcessWire[9]. Le nombre relativement faible de modules par rapport à d'autres plateformes CMS comme WordPress est attribué au noyau riche en fonctionnalités de ProcessWire, qui inclut des fonctionnalités intégrées qui nécessiteraient autrement des plugins séparés[10].
Types de modules
ProcessWire prend en charge plusieurs types de modules prédéfinis :
- Modules Fieldtype - Définissent des types de champs personnalisés pour stocker différents types de données
- Modules Inputfield - Fournissent des interfaces d'entrée pour les champs dans l'administration
- Modules Process - Créent des pages et des processus d'administration
- Modules Textformatter - Formatent et transforment la sortie de texte
- Modules Markup - Génèrent du balisage et du HTML
- Modules Autoload - Se chargent automatiquement au démarrage de ProcessWire, utiles pour les hooks
L'installation des modules est simplifiée par plusieurs méthodes : téléchargement de fichiers ZIP via l'administration, fourniture d'URLs de téléchargement ou placement manuel de fichiers dans le répertoire des modules.
Modules Pro commerciaux
ProcessWire propose plusieurs modules Pro commerciaux développés par Ryan Cramer, le développeur principal :
- FormBuilder - Un outil complet de création de formulaires pour créer et gérer des formulaires sans codage[11]
- ProFields - Une collection de types de champs puissants incluant les modules Repeater Matrix, Table, Combo et Custom Fields[12]
- ProCache - Module de mise en cache avancé pour l'optimisation des performances
- ProMailer - Outils de gestion des emails
- ProDrafts - Gestion des brouillons et des révisions
- ListerPro - Liste avancée et gestion des pages
- LoginRegisterPro - Système complet d'inscription et de connexion des utilisateurs
Les revenus des modules Pro soutiennent le développement continu du noyau gratuit de ProcessWire.
Public cible
Avant et pendant le développement d'un site web ou d'une application, le public de ProcessWire se compose en grande partie de développeurs web et de concepteurs web[13]. Au sein de ce public, ProcessWire est utilisé à la fois comme outil de développement et comme CMS.
Après le développement, le public change pour devenir des individus qui gèrent le contenu des sites web et des applications, qui ne sont généralement pas des concepteurs/développeurs web. Ce public utilise ProcessWire principalement comme CMS pour gérer le contenu.
Communauté
ProcessWire possède une communauté mondiale active de développeurs et d'utilisateurs. Le centre principal de la communauté est le forum de support sur processwire.com/talk, qui comprend des sections pour :
- Support général et questions de développement API
- Développement et support de modules
- Vitrine de sites web construits avec ProcessWire
- Discussions de support multilingue
- Discussions sur la sécurité
- Tableau d'emplois pour embaucher des développeurs ProcessWire
La communauté est connue pour son atmosphère amicale et serviable, avec une participation active des utilisateurs et du développeur principal. ProcessWire maintient une newsletter hebdomadaire et ProcessWire Weekly, une publication indépendante de Teppo Koivula couvrant les actualités ProcessWire et les sujets de développement web.
La communauté a développé de nombreux modules tiers, profils de sites et tutoriels. Une section vitrine sur le site web officiel présente des sites web construits avec ProcessWire, allant des petits sites d'entreprises aux grands sites web institutionnels.
Histoire
ProcessWire est en développement actif depuis 2003. De 2003 à 2007, il a été développé sous le nom de Dictator CMS. De 2007 à 2010, il a été développé sous le nom de ProcessWire 1.x. ProcessWire est devenu un projet communautaire open source en 2010 et est actuellement développé sous les versions ProcessWire 2.x et 3.x[14].
ProcessWire a eu plusieurs versions importantes depuis la première version open source. La version 3.0 publiée en septembre 2016 a marqué la deuxième version majeure, introduisant les espaces de noms PHP, les capacités d'édition frontale et le support des modules compilés[15].
La version 3.0.255, publiée le 16 janvier 2026, a introduit plusieurs améliorations majeures :
- Un nouveau thème de conception d'administration moderne appelé "Konkat Default" créé par Konkat Studio (Jan Ploch et Diogo Oliveira), offrant un look plus contemporain qui peut être basculé avec la conception originale "Core Original"
- Fonctionnalité améliorée de Markup Regions, permettant la modification des régions de balisage à partir de fichiers qui ne faisaient que les définir auparavant
- Documentation API améliorée pour environ 50 modules du noyau
- Mises à jour des fonctions API JavaScript du noyau pour utiliser les modales Uikit au lieu des modales Vex
- Nouvelles méthodes API JavaScript pour l'encodage/décodage d'entités
- Introduction du module ZipFileValidator pour une sécurité améliorée[16]
Le système a maintenu la cohérence et la rétrocompatibilité tout au long de son développement, avec des mises à jour continues tout en préservant les concepts API originaux et les conventions de dénomination.
Traductions et communauté
ProcessWire possède des communautés actives et mondiales d'utilisateurs finaux et de développeurs. Ces communautés ont traduit ProcessWire de l'anglais vers leurs langues natives, notamment : le chinois, le croate, le tchèque, le néerlandais, le français, l'allemand, le grec, l'hébreu, le hongrois, l'italien, le japonais, le portugais, le russe, le slovaque, l'espagnol, le suédois, le turc, l'ukrainien et le vietnamien. Le centre principal des communautés ProcessWire se trouve dans les forums de support des développeurs[13].
Comparaison avec d'autres plateformes
ProcessWire est souvent comparé à d'autres systèmes de gestion de contenu, en particulier WordPress. La comparaison officielle met en évidence plusieurs différences clés :
- ProcessWire est construit comme un framework d'abord, avec le CMS comme une application par-dessus, tandis que WordPress est né comme une plateforme de blogs
- Tous les champs dans ProcessWire sont des champs personnalisés par défaut, alors que WordPress distingue les champs standard et personnalisés
- ProcessWire utilise une structure d'arbre de pages hiérarchique pour tout le contenu, tandis que WordPress utilise des types de publications et des taxonomies séparés
- ProcessWire met l'accent sur le contrôle du développeur sur le balisage de sortie, étant agnostique du balisage, tandis que WordPress utilise des systèmes de thèmes
- ProcessWire a un écosystème de modules plus petit (plus de 600 modules) par rapport à WordPress (plus de 40 000 plugins), en grande partie parce que la fonctionnalité du noyau est plus complète[17]
Prix et publications
En novembre 2016, ProcessWire a été récompensé comme le meilleur CMS pour petites entreprises par CMS Critic[18].
En juillet 2016, Smashing Magazine a publié A Beginners Guide to ProcessWire[19].
Depuis janvier 2016, Envato Tuts+ a publié plusieurs articles et tutoriels sur ProcessWire[20].
En janvier 2015, ProcessWire a été récompensé comme le meilleur CMS PHP gratuit par CMS Critic[21].
En décembre 2014, PHP Architect a publié ProcessWire: Flexibility, Power, and a Generous Dose of Pure Fun[22].
En décembre 2012, ProcessWire a été récompensé comme le meilleur CMS gratuit par CMS Critic[23].
Architecture
ProcessWire est construit autour d'un arbre de contenu de pages (par opposition à un système de conteneurs). L'URL ou le chemin de chaque page reflète toujours sa place dans la hiérarchie. On utilise ce même chemin pour référencer la page dans l'API. En conséquence, cette connexion du chemin à la hiérarchie d'arbre interne définit l'architecture de ProcessWire. Au-delà de la relation parent-enfant impliquée par un arbre de contenu, ProcessWire prend en charge les références relationnelles un-à-un et un-à-plusieurs entre les pages de l'arbre.
Architecture des templates
Les templates dans ProcessWire sont un type de contenu qui contient un ou plusieurs champs personnalisés représentant la définition du type de contenu. Chaque page dans ProcessWire est assignée à un template qui représente alors le type de page. Un template est généralement partagé entre plusieurs pages. Les templates définissent également le contrôle d'accès, la mise en cache et d'autres paramètres partagés entre les pages utilisant le template.
Les templates ont optionnellement un fichier PHP associé, appelé fichier de template. Ce fichier est exécuté chaque fois que l'URL d'une page utilisant le template est accédée. En conséquence, les fichiers de template sont généralement utilisés à des fins de sortie. Le fichier de template reçoit plusieurs variables API, la plus notable étant la variable API $page, qui contient tous les champs et le contenu de la page actuellement visualisée[24].
Les fichiers de template servent plusieurs contextes, selon l'application. Les profils de site web par défaut de ProcessWire utilisent les fichiers de template principalement pour la sortie de balisage HTML direct et généré dynamiquement. Les fichiers de template peuvent également être utilisés comme contrôleurs intermédiaires entre un modèle et une vue séparée. Parce que les fichiers de template sont des fichiers PHP réguliers, ils peuvent appeler d'autres services web ou applications PHP le cas échéant, sans couche d'analyse séparée.
Architecture des champs
Tous les champs dans ProcessWire sont des champs personnalisés définis par l'utilisateur. Un champ donné peut être assigné à plusieurs templates, qui à leur tour contiennent des morceaux individuels de contenu pour chaque page utilisant ce template. Chaque champ a un type, appelé "fieldtype" (un mot), un type de module de plugin. ProcessWire inclut plusieurs modules fieldtype, y compris ceux qui supportent le texte, les nombres, les fichiers, les images, les références de pages, les URLs, les adresses email, les dates et les commentaires. Des modules fieldtype supplémentaires sont installés comme modules tiers.
Structure des pages
ProcessWire utilise une structure arborescente hiérarchique pour organiser tout le contenu en pages. Cette structure est similaire à un système de fichiers, sans limites imposées sur la profondeur. Le système est conçu pour évoluer des sites web d'une seule page aux installations avec des millions de pages tout en maintenant des performances cohérentes et une facilité d'utilisation. Toute la navigation et les relations entre le contenu sont basées sur cette structure arborescente, qui peut être parcourue à la fois via l'interface d'administration et l'API.
Sécurité
ProcessWire met fortement l'accent sur la sécurité tout au long de son développement central. Le système comprend :
- Contrôle d'accès basé sur les rôles avec des permissions granulaires
- Protection intégrée contre les vulnérabilités courantes (injection SQL, XSS, CSRF)
- Audits et mises à jour de sécurité réguliers
- Outils de validation et d'assainissement dans toute l'API
- Validation du téléchargement de fichiers et mesures de sécurité
- Fonctionnalités de sécurité de session
ProcessWire a maintenu un solide bilan de sécurité tout au long de son histoire, sans incidents de sécurité majeurs ni pannes[25].
Distribution et exigences
Le code source de ProcessWire est hébergé sur GitHub et est également distribué sur Softaculous, Bitnami et Composer/Packagist.
ProcessWire fonctionne sur la plateforme AMP (Apache, MySQL ou MariaDB, PHP) utilisée par de nombreux fournisseurs d'hébergement et environnements de développement web. ProcessWire nécessite PHP version 5.3.8 ou plus récente, et MySQL ou MariaDB 5.0.15 ou plus récente[26].
Implémentations notables
ProcessWire alimente une gamme diversifiée de sites web, notamment :
- Sites web gouvernementaux et institutionnels
- Sites de tourisme et de marketing de destination
- Sites web d'entreprise
- Plateformes de commerce électronique
- Médias d'information
- Établissements d'enseignement
- Organisations culturelles et musées
La flexibilité de la plateforme la rend adaptée aussi bien aux sites web simples qu'aux applications web complexes.
