La mise en forme de cet article est à améliorer (février 2026).
| 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 |
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.
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 :
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].
ProcessWire prend en charge plusieurs types de modules prédéfinis :
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.
ProcessWire propose plusieurs modules Pro commerciaux développés par Ryan Cramer, le développeur principal :
Les revenus des modules Pro soutiennent le développement continu du noyau gratuit de ProcessWire.
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.
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 :
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.
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 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 , a introduit plusieurs améliorations majeures :
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.
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].
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 :
En , ProcessWire a été récompensé comme le meilleur CMS pour petites entreprises par CMS Critic[18].
En , Smashing Magazine a publié A Beginners Guide to ProcessWire[19].
Depuis , Envato Tuts+ a publié plusieurs articles et tutoriels sur ProcessWire[20].
En , ProcessWire a été récompensé comme le meilleur CMS PHP gratuit par CMS Critic[21].
En , PHP Architect a publié ProcessWire: Flexibility, Power, and a Generous Dose of Pure Fun[22].
En , ProcessWire a été récompensé comme le meilleur CMS gratuit par CMS Critic[23].
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.
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.
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.
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.
ProcessWire met fortement l'accent sur la sécurité tout au long de son développement central. Le système comprend :
ProcessWire a maintenu un solide bilan de sécurité tout au long de son histoire, sans incidents de sécurité majeurs ni pannes[25].
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].
ProcessWire alimente une gamme diversifiée de sites web, notamment :
La flexibilité de la plateforme la rend adaptée aussi bien aux sites web simples qu'aux applications web complexes.
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.