ProcessWire
Content-Management-System
From Wikipedia, the free encyclopedia
ProcessWire ist ein freies und quelloffenes Content-Management-System (CMS), Content-Management-Framework (CMF) und Webanwendungs-Framework (WAF), das in der Programmiersprache PHP geschrieben ist. Es wird unter der Mozilla Public License 2.0 vertrieben. ProcessWire ist um eine API mit Verwendungs- und Namenskonventionen ähnlich dem JavaScript-Framework jQuery aufgebaut. Das erklärte Ziel hinter der API ist es, das gleiche Maß an Zugänglichkeit und Kontrolle über Seiten einer Website zu bieten, das jQuery für das DOM bereitstellt.[2] Inhalte werden entweder über die API oder das webbasierte Admin-Control-Panel verwaltet. ProcessWire wird hauptsächlich für die Entwicklung von Websites, Webanwendungen, Diensten, Content-Feeds und verwandten Anwendungen verwendet.
| ProcessWire | |
|---|---|
| Processwire logo.svg | |
| Basisdaten | |
| Hauptentwickler | Ryan Cramer |
| Entwickler | Ryan Cramer Design, LLC |
| Erscheinungsjahr | 2007 |
| Aktuelle Version | 3.0.255[1] (16. Januar 2026) |
| Betriebssystem | plattformunabhängig |
| Programmiersprache | PHP |
| Kategorie | Webframework, Web-Content-Management-System |
| Lizenz | Mozilla Public License 2.0 (Freie Software) |
| deutschsprachig | ja |
| ProcessWire.com | |
Funktionsumfang
- jQuery-artige API mit umfassender Dokumentation[3]
- Grafischer webbasierter Installer
- Alle Felder sind benutzerdefinierte Felder, indexiert für Suchoperationen in der API
- Kann von anderen PHP-Anwendungen oder Kommandozeilen-Skripten gebootstrapped werden[4]
- Interaktive und API-basierte Bildbearbeitungsfunktionen
- Drag-and-Drop-baumbasierte Seitenliste
- Drag-and-Drop-Datei- und Bild-Uploads sowie Bearbeitungsfunktionen
- Unterstützung für größere (100.000+ Seiten) Installationen
- Verwendung von string-basierten Selektoren für API-Aufrufe[5]
- Rollenbasiertes Zugriffskontrollsystem
- Schwerpunkt der Kernentwicklung auf Sicherheit[6]
- Markup-agnostische Ausgabe, die alle Ausgaben dem Entwickler überlässt
- Template-Dateien sind PHP-basiert, standardmäßig wird keine Template-Engine verwendet
- Ausgabe-Caching ganzer Seiten oder einzelner Teile
- Mehrsprachige Unterstützung mit mehrsprachigen Textfeldern und URLs[7]
- Modulare Plugin-Architektur und verfügbare Drittanbieter-Module[8]
- Feld- und Eingabetypen sind selbst Plugin-Module
- Hook-System, das es ermöglicht, die meisten Kernfunktionen zu hooken und zu ändern[9]
- Felder und Feldgruppen sind wiederholbar durch integrierte Repeater-Feldtypen
- Unterstützung für Rich-Text-Bearbeitung mit CKEditor
- Mehrere Admin-Theme-Design-Optionen, einschließlich des modernen „Konkat Default“-Themes
- Frontend-Bearbeitungsfunktionen im Kern integriert
- PHP-Namespaces-Unterstützung
Module und Erweiterbarkeit
ProcessWire verfügt über eine modulare Plugin-Architektur, bei der Module als primäre Methode zur Erweiterung der Funktionalität dienen. Im Kern ist ProcessWire selbst weitgehend eine Sammlung von Modulen, wobei die Admin-Anwendung vollständig aus Modulen besteht. Module in ProcessWire gibt es in verschiedenen Varianten:
- Kernmodule – im Lieferumfang von ProcessWire im Verzeichnis `/wire/modules/` enthalten. Viele sind vorinstalliert, während andere per Ein-Klick-Installation verfügbar sind
- Site-Module – Drittanbieter- oder benutzerdefinierte Module, die im Verzeichnis `/site/modules/` installiert sind
- Pro-Module – kommerzielle Module, die vom Hauptentwickler entwickelt wurden und erweiterte Funktionalität bieten
Stand 2026 sind über 637 Module im ProcessWire-Modulverzeichnis verfügbar.[10] Die relativ geringere Anzahl von Modulen im Vergleich zu anderen CMS-Plattformen wie WordPress wird auf den funktionsreichen Kern von ProcessWire zurückgeführt, der integrierte Funktionalität enthält, die andernfalls separate Plugins erfordern würde.[11]
Modultypen
ProcessWire unterstützt mehrere vordefinierte Modultypen:
- Fieldtype-Module – Definieren benutzerdefinierte Feldtypen zum Speichern verschiedener Datenarten
- Inputfield-Module – Bieten Eingabeschnittstellen für Felder im Admin-Bereich
- Process-Module – Erstellen Admin-Seiten und Prozesse
- Textformatter-Module – Formatieren und transformieren Textausgaben
- Markup-Module – Generieren Markup und HTML
- Autoload-Module – Laden automatisch beim Booten von ProcessWire, nützlich für Hooks
Die Modulinstallation wird durch mehrere Methoden vereinfacht: Hochladen von ZIP-Dateien über den Admin-Bereich, Bereitstellung von Download-URLs oder manuelles Platzieren von Dateien im Modulverzeichnis.
Kommerzielle Pro-Module
ProcessWire bietet mehrere kommerzielle Pro-Module, die von Ryan Cramer, dem Hauptentwickler, entwickelt wurden:
- FormBuilder – Ein umfassendes Formular-Builder-Tool zum Erstellen und Verwalten von Formularen ohne Programmierung[12]
- ProFields – Eine Sammlung leistungsstarker Feldtypen, einschließlich Repeater Matrix, Table, Combo und Custom Fields-Modulen[13]
- ProCache – Erweitertes Caching-Modul zur Leistungsoptimierung
- ProMailer – E-Mail-Verwaltungstools
- ProDrafts – Entwurfs- und Revisionsverwaltung
- ListerPro – Erweiterte Seitenauflistung und -verwaltung
- LoginRegisterPro – Vollständiges Benutzerregistrierungs- und Anmeldesystem
Die Einnahmen aus Pro-Modulen unterstützen die fortlaufende Entwicklung des kostenlosen ProcessWire-Kerns.
Zielgruppe
Vor und während der Entwicklung einer Website oder Anwendung besteht die Zielgruppe für ProcessWire hauptsächlich aus Webentwicklern und Webdesignern.[14] Innerhalb dieser Zielgruppe wird ProcessWire sowohl als Entwicklungswerkzeug als auch als CMS verwendet.
Nach der Entwicklung ändert sich die Zielgruppe zu Personen, die Inhalte für Websites und Anwendungen verwalten, die typischerweise keine Webdesigner/Entwickler sind. Diese Zielgruppe nutzt ProcessWire in erster Linie als CMS zur Verwaltung von Inhalten.
Community
ProcessWire verfügt über eine aktive globale Community von Entwicklern und Benutzern. Der zentrale Knotenpunkt der Community ist das Support-Forum unter processwire.com/talk, das Bereiche umfasst für:
- Allgemeine Unterstützung und API-Entwicklungsfragen
- Modulentwicklung und -unterstützung
- Showcase von mit ProcessWire erstellten Websites
- Mehrsprachige Support-Diskussionen
- Sicherheitsdiskussionen
- Job-Board für die Einstellung von ProcessWire-Entwicklern
Die Community ist für ihre freundliche und hilfreiche Atmosphäre bekannt, mit aktiver Beteiligung von Benutzern und dem Hauptentwickler. ProcessWire unterhält einen wöchentlichen Newsletter und ProcessWire Weekly, eine unabhängige Publikation von Teppo Koivula, die ProcessWire-Neuigkeiten und Webentwicklungsthemen behandelt.
Die Community hat zahlreiche Drittanbieter-Module, Site-Profile und Tutorials entwickelt. Ein Showcase-Bereich auf der offiziellen Website präsentiert mit ProcessWire erstellte Websites, von kleinen Unternehmensseiten bis hin zu großen institutionellen Websites.
Geschichte
ProcessWire wird seit 2003 aktiv entwickelt. Von 2003 bis 2007 wurde es unter dem Namen Dictator CMS entwickelt. Von 2007 bis 2010 wurde es als ProcessWire 1.x entwickelt. ProcessWire wurde 2010 zu einem Open-Source-Community-Projekt und wird derzeit als ProcessWire 2.x und 3.x entwickelt.[15]
ProcessWire hat seit der ersten Open-Source-Veröffentlichung mehrere bedeutende Versionsveröffentlichungen gehabt. Version 3.0, die im September 2016 veröffentlicht wurde, markierte die zweite Hauptversionsveröffentlichung und führte PHP-Namespaces, Frontend-Bearbeitungsfunktionen und Unterstützung für kompilierte Module ein.[16]
Version 3.0.255, veröffentlicht am 16. Januar 2026, führte mehrere wichtige Verbesserungen ein:
- Ein neues modernes Admin-Design-Theme namens „Konkat Default“, erstellt von Konkat Studio (Jan Ploch und Diogo Oliveira), das ein zeitgemäßeres Aussehen bietet und mit dem ursprünglichen „Core Original“-Design umgeschaltet werden kann.
- Verbesserte Markup-Regions-Funktionalität, welche die Änderung von Markup-Regionen aus Dateien ermöglicht, die sie zuvor nur definiert haben.
- Erweiterte API-Dokumentation für etwa 50 Kernmodule
- Updates der Kern-JavaScript-API-Funktionen zur Verwendung von Uikit-Modals anstelle von Vex-Modals
- Neue JavaScript-API-Methoden für Entity-Encoding/-Decoding
- Einführung des ZipFileValidator-Moduls für verbesserte Sicherheit[17]
Das System hat während seiner gesamten Entwicklung Konsistenz und Abwärtskompatibilität beibehalten, mit kontinuierlichen Updates unter Beibehaltung der ursprünglichen API-Konzepte und Namenskonventionen.
Übersetzungen und Community
ProcessWire hat aktive, globale Endbenutzer- und Entwickler-Communities. Diese Communities haben ProcessWire aus dem Englischen in ihre Muttersprachen übersetzt, darunter: Chinesisch, Kroatisch, Tschechisch, Niederländisch, Französisch, Deutsch, Griechisch, Hebräisch, Ungarisch, Italienisch, Japanisch, Portugiesisch, Russisch, Slowakisch, Spanisch, Schwedisch, Türkisch, Ukrainisch und Vietnamesisch. Der zentrale Knotenpunkt der ProcessWire-Communities befindet sich in den Entwickler-Support-Foren.[14]
Vergleich mit anderen Plattformen
ProcessWire wird oft mit anderen Content-Management-Systemen verglichen, insbesondere mit WordPress. Der offizielle Vergleich hebt mehrere wichtige Unterschiede hervor:
- ProcessWire ist als Framework konzipiert, wobei das CMS als Anwendung darauf aufbaut, während WordPress als Blogging-Plattform begann.
- Alle Felder in ProcessWire sind standardmäßig benutzerdefinierte Felder, während WordPress zwischen Standard- und benutzerdefinierten Feldern unterscheidet.
- ProcessWire verwendet eine hierarchische Seitenbaumstruktur für alle Inhalte, während WordPress separate Beitragstypen und Taxonomien verwendet.
- ProcessWire betont die Entwicklerkontrolle über Ausgabe-Markup und ist Markup-agnostisch, während WordPress Theme-Systeme verwendet.
- ProcessWire hat ein kleineres Modul-Ökosystem (600+ Module) im Vergleich zu WordPress (40.000+ Plugins), hauptsächlich weil die Kernfunktionalität umfassender ist.[18]
Auszeichnungen und Veröffentlichungen
Im November 2016 wurde ProcessWire von CMS Critic als bestes Small Business CMS ausgezeichnet.[19]
Im Juli 2016 veröffentlichte das Smashing Magazine A Beginners Guide to ProcessWire.[11]
Seit Januar 2016 hat Envato Tuts+ mehrere Artikel und Tutorials zu ProcessWire veröffentlicht.[20]
Im Januar 2015 wurde ProcessWire von CMS Critic als bestes kostenloses PHP-CMS ausgezeichnet.[21]
Im Dezember 2014 veröffentlichte PHP Architect ProcessWire: Flexibility, Power, and a Generous Dose of Pure Fun.[22]
Im Dezember 2012 wurde ProcessWire von CMS Critic als bestes kostenloses CMS ausgezeichnet.[23]
Architektur
ProcessWire ist um einen Seiteninhaltsbaum herum aufgebaut (im Gegensatz zu einem Bucket-System). Die URL oder der Pfad jeder Seite spiegelt immer ihren Platz in der Hierarchie wider. Man verwendet denselben Pfad, um die Seite in der API zu referenzieren. Infolgedessen definiert diese Verbindung des Pfades zur internen Baumhierarchie die Architektur von ProcessWire. Über die durch einen Inhaltsbaum implizierte Eltern-Kind-Beziehung hinaus unterstützt ProcessWire relationale Eins-zu-eins- und Eins-zu-viele-Referenzen zwischen Seiten im Baum.
Template-Architektur
Templates in ProcessWire sind ein Inhaltstyp, der ein oder mehrere benutzerdefinierte Felder enthält, die die Definition des Inhaltstyps darstellen. Jede Seite in ProcessWire wird einem Template zugewiesen, das dann den Typ der Seite darstellt. Ein Template wird typischerweise von mehreren Seiten gemeinsam genutzt. Templates definieren auch Zugriffskontrolle, Caching und andere Einstellungen, die von Seiten gemeinsam genutzt werden, die das Template verwenden.
Templates haben optional eine zugehörige PHP-Datei, die als Template-Datei bezeichnet wird. Diese Datei wird ausgeführt, wenn die URL für eine Seite aufgerufen wird, die das Template verwendet. Daher werden Template-Dateien typischerweise für Ausgabezwecke verwendet. Der Template-Datei werden mehrere API-Variablen bereitgestellt, wobei die bemerkenswerteste die $page-API-Variable ist, die alle Felder und Inhalte der aktuell angezeigten Seite enthält.[24]
Template-Dateien dienen je nach Anwendung mehreren Kontexten. ProcessWires Standard-Website-Profile verwenden Template-Dateien hauptsächlich für die Ausgabe von direktem und dynamisch generiertem HTML-Markup. Template-Dateien können auch als Zwischencontroller zwischen einem Modell und einer separaten Ansicht verwendet werden. Da Template-Dateien reguläre PHP-Dateien sind, können sie gegebenenfalls andere Webdienste oder PHP-Anwendungen aufrufen, ohne eine separate Parsing-Ebene.
Feld-Architektur
Alle Felder in ProcessWire sind benutzerdefinierte Felder, die vom Benutzer definiert werden. Ein bestimmtes Feld kann mehreren Templates zugewiesen werden, die wiederum einzelne Inhaltsteile für jede Seite enthalten, die dieses Template verwendet. Jedes Feld hat einen Typ, der als „Fieldtype“ (ein Wort) bezeichnet wird, eine Art Plugin-Modul. ProcessWire enthält mehrere Fieldtype-Module, darunter solche, die Text, Zahlen, Dateien, Bilder, Seitenreferenzen, URLs, E-Mail-Adressen, Daten und Kommentare unterstützen. Zusätzliche Fieldtype-Module werden als Drittanbieter-Module installiert.
Seitenstruktur
ProcessWire verwendet eine hierarchische Baumstruktur zur Organisation aller Inhalte als Seiten. Diese Struktur ähnelt einem Dateisystem, ohne auferlegte Begrenzungen der Tiefe. Das System ist darauf ausgelegt, von einseitigen Websites bis zu Installationen mit Millionen von Seiten zu skalieren, während es konsistente Leistung und Benutzerfreundlichkeit beibehält. Alle Navigation und Beziehungen zwischen Inhalten basieren auf dieser Baumstruktur, die sowohl über die Admin-Oberfläche als auch über die API durchlaufen werden kann.
Sicherheit
ProcessWire legt großen Wert auf Sicherheit während seiner gesamten Kernentwicklung. Das System umfasst:
- Rollenbasierte Zugriffskontrolle mit granularen Berechtigungen
- Eingebauter Schutz vor häufigen Schwachstellen (SQL-Injection, XSS, CSRF)
- Regelmäßige Sicherheitsaudits und Updates
- Validierungs- und Sanitization-Tools in der gesamten API
- Datei-Upload-Validierung und Sicherheitsmaßnahmen
- Session-Sicherheitsfunktionen
ProcessWire hat im Laufe seiner Geschichte eine starke Sicherheitsbilanz beibehalten, ohne größere Sicherheitsvorfälle oder Ausfälle.[25]
Distribution und Systemvoraussetzungen
Der Quellcode von ProcessWire wird auf GitHub gehostet und ist auch auf Softaculous, Bitnami und Composer/Packagist verfügbar.
ProcessWire läuft auf der AMP-Plattform (Apache, MySQL oder MariaDB, PHP), die von vielen Hosting-Anbietern und Webentwicklungsumgebungen verwendet wird. ProcessWire benötigt PHP Version 5.3.8 oder neuer und MySQL oder MariaDB 5.0.15 oder neuer.[26]
Bekannte Implementierungen
ProcessWire betreibt eine Vielzahl von Websites, darunter:
- Regierungs- und institutionelle Websites
- Tourismus- und Destinationsmarketing-Sites
- Unternehmenswebsites
- E-Commerce-Plattformen
- Nachrichten- und Medienportale
- Bildungseinrichtungen
- Kulturorganisationen und Museen
Die Flexibilität der Plattform macht sie sowohl für einfache Websites als auch für komplexe Webanwendungen geeignet.
Rezeption
- Daniel Berger, Tim Schürmann, Karsten Violka: Content-Management-Systeme im Vergleich. In: c’t – Sonderheft Webdesign. Juni 2017, S. 54–61.