ProcessWire: API-basiertes CMS-Framework

ProcessWire ist ein etabliertes Open Source CMS und Content Management Framework. Es gehört zwar zu den weniger bekannten Systemen, genießt jedoch in der Entwickler-Szene einen ausgesprochen guten Ruf und weist eine sehr hohe Kontinuität auf. Kern von ProcessWire ist eine interne API, die dem System eine außergewöhnlich hohe Flexibilität verleiht und ein breites Anwendungsspektrum unterstützt.

Screenshot ProcessWire Startseite

ProcessWire wird seit 2007 von Ryan Cramer als Folgeprojekt des Content Management Systems DictatorCMS entwickelt. Seit 2010 steht ProcessWire als Open Source Projekt unter der Mozilla Public Licence zur Verfügung.

Bis heute ist Ryan Cramer der zentrale Kopf hinter der Kern-Software von ProcessWire. Auch das GitHub-Repository läuft unter dem Account von Ryan Cramer und nicht unter einem Organisations-Account. Dennoch hat sich eine recht große Community um das System herum gebildet, die ProcessWire um viele Erweiterungen bereichert. Eine vergleichbare Dynamik wie WordPress, Joomla! oder andere große Open Source CMS hat ProcessWire mit seinem Fokus auf Entwickler allerdings nie erlebt. Stattdessen hat sich ProcessWire als hochwertiges Open Source CMS vor allem für kleinere und mittelgroße Business-Projekte und Web-Anwendungen etabliert.

#ProcessWire für Content Manager

ProcessWire bietet auf seiner Seite einen Demo-Bereich an, der einen guten Eindruck von der Autoren- und Administrations-Oberfläche vermittelt. Im März 2018 hat ProcessWire ein neues Admin-Theme in die Standard-Version übernommen, das sich am Design der alten Admin-UI orientiert, dabei jedoch viele Details optimiert. Auch das neue Theme ist sehr klar und übersichtlich aufgebaut, sodass selbst ungeübte Autoren problemlos damit zurechtkommen dürften.

Inhalte werden bei ProcessWire mit einem traditionellen WISYWIG HTML Editor erstellt. Auch beim neuen Admin-Dashboard hält ProcessWire an den traditionellen Eingabeformularen fest. Auch wenn viele andere Content Management Systeme inzwischen auf Inline-Editing umschwenken, muss die Entscheidung für traditionelle Formulare nicht nachteilig sein, denn in vielen Fällen stoßen Inline-Konzepte auf wenig Gegenliebe bei der Autorenschaft.

The ProcessWire Website

ProcessWire bietet zwei unterschiedliche Wege an, Bilder in eine Seite zu integrieren:

  1. Neue Bilder lassen sich traditionell über den HTML-Editor in den Content integrieren.
  2. Falls das Feature implementiert ist, können Bilder auch über ein separates Drag & Drop-Feld hochgeladen und danach in den Content-Bereich integriert werden.

Etwas inkonsequent ist zumindest in der Standard-Installation der Umgang mit Meta-Informationen für Bilder. Über das Drag & Drop Feld kann ein Alternativ-Text unter dem Titel "Description", aber keine Bild-Unterschrift eingefügt werden. Im Media-Manager des WISYWIG-Editors kann dagegen per Checkbox nur eine Bild-Unterschrift hinzugefügt werden. Leider hat das Team der Admin-UI die Gelegenheit verpasst, diesen Mangel beim neuen Admin-Interface zu beheben. Vor der Wahl von ProcessWire sollte man daher mit dem Entwickler-Team nach Optimierungs-Möglichkeiten suchen, da Alternativ-Texte für Bilder gerade in professionellen Redaktionen verpflichtend sein sollten und dafür ein angenehmer und verständlicher Workflow unerlässlich ist.

#ProcessWire für Entwickler

ProcessWire nutzt den AMP-Stack (Apache, MySQL, PHP) und läuft ab der PHP Version 5.4 und ab der MySQL-Version 5.0.15. Neben mod_rewrite und .htaccess nutzt ProcessWire die GD-Library bzw. ImageMagick als Alternative. Das Frontend ist überwiegend noch mit JQuery gebaut.

Der Installationsprozess ist dank eines übersichtlichen Installations-Wizards sehr einfach. Nach der Installation sollte man allerdings sofort das Modul "ProcessForgotPassword" nachinstallieren, das zwar mit der Core-Version mitgeliefert, aber nicht per Default installiert wird. Falls man ohne dieses Modul sein Passwort vergisst, gibt es kaum eine andere Möglichkeit, als das System neu zu installieren. Das Modul findet man unter "Modules" und "Configure".

Eine Eigenheit von ProcessWire ist der extrem modulare Aufbau und der API-Ansatz, das den Kern von ProcessWire bildet und laut Eigenaussage von JQuery-Syntax inspiriert ist. Mit Hilfe der REST- und GraphQL-Modulen lassen sich mit ProcessWire auch Headless Architektur realisieren.

Ähnlich wie bei anderen hochwertigen Content Management Systemen verfügt auch ProcessWire über das Konzept des Field-Managers. Mit dem Field-Manager können Templates komplett über die Administrations-Oberfläche erstellt werden, d.h. man kann über die Oberfläche auch die Eingabefelder für die Autoren definieren.

The ProcessWire Website

Die Templates werden anschließend mit klassischem HTML und PHP erstellt:

<h1><?php echo $page->title; ?></h1>

Für den Daten-Zugriff gibt es mehrere spezielle API-Objekte wie $input, $fields, $user oder $templates. In den meisten Fällen wird man jedoch auf das $page Objekt zurückgreifen. Ein vollständiges Beispiel mit einem Title, einem Body und einer Liste aus Seiten mit einem Feature-Flag könnte so aussehen:

<h1><?php echo $page->title; ?></h1>
<div id='bodycopy'>
    <?php echo $page->bodycopy; ?>
</div>
<ul>
    <?php
    $features = $pages->find("featured=1");
    foreach($features as $feature)
       echo "<li><a href='{$feature->url}'>{$feature->title}</a></li>";
    ?>
</ul>

Wem das Konzept zusagt, der kann über die Documentation von ProcessWire tiefer in die Materie einsteigen.

#Die Roadmap

ProcessWire hat gerade ein neues Admin-Theme in die Core-Version übernommen und die Homepage processwire.com erneuert. Darüber hinaus lässt zumindest die publizierte Roadmap von ProcessWire derzeit keine ganz großen Neuerungen erwarten. Da ProcessWire keine externen Frameworks nutzt und auch sonst nur wenige Abhängigkeiten hat, sind große System-Upgrades nicht nötig.

Spannend wird in Zukunft der Bezug zu JQuery bleiben. Laut Selbstdarstellung war JQuery die zentrale Inspiration auch für die Backend-Architektur mit PHP und ein Umstieg von ProcessWire auf modernere Frameworks wie React oder Vue zeichnet sich derzeit nicht ab. Aufgrund der API-Architektur ist es allerdings auch heute schon relativ einfach, neue Frameworks wie Vue.js mit ProcessWire zu nutzen.

#ProcessWire für Nicht-Entwickler

ProcessWire versteht sich in erster Linie als Framework, mit dem Entwickler Webseiten und Web-Applikationen umsetzen können. Entwicklern bietet ProcessWire mit der API-Architektur und unzähligen Erweiterungen eine enorme Flexibilität an. Allerdings bietet ProcessWire keine Möglichkeit, neue Themes per Klick zu installieren. Damit gehören Autoren, die nach dem Muster von WordPress in Eigen-Regie eine Webseite aufsetzen wollen, definitiv nicht zur Zielgruppe von ProcessWire.

Für Code-Einsteiger und Neulinger dürfte ProcessWire schon recht anspruchsvoll sein. Gleichzeitig ist ProcessWire jedoch ein sehr gutes und vor allem sehr sauberes Lern-Objekt, zumal der API-Ansatz in abgewandelter Form immer größere Bedeutung erhält.

#Preise und Lizenzen

ProcessWire ist Open Source und die Kern-Software wird unter der Mozilla Public Licence Version 2.0 (MPL) angeboten. Andere Komponeten stehen unter der MIT-Lizenz. ProcessWire verfügt über einen eigenen Shop, über den man Komponenten von Dritt-Anbietern erwerben kann.

#Verbreitung und Dienstleister für ProcessWire

ProcessWire hat zwar einen relativ geringen Bekanntheitsgrad, jedoch einen sehr guten Ruf in der Entwickler-Szene. Daher findet man auch hierzulande vor allem kleinere Agenturen und Freelancer mit ProcessWire im Portfolio.

#Empfehlung: Wann macht ProcessWire Sinn?

ProcessWire versteht sich als Content Management System und als Framework. Es kann nicht nur für die Erstellung von Webseiten, sondern auch als Framework für Web-Applikationen genutzt werden. Es richtet sich explizit an Entwickler, dadurch ist es für Dienstleister, Agenturen und Freelancer interessant, die ein hohes Maß an Flexibilität bei der Umsetzung der Projekte benötigen.

Es gibt eine lange Liste mit über 800 Projekten und Webseiten, die mit ProcessWire umgesetzt wurden. Die Komplexität reicht dabei von einfachen bis mittelkomplexen Projekten aus so ziemlich allen vorstellbaren Branchen und Kategorien: Es gibt Blogs, E-Commerce-Seiten bis hin zu Veranstaltungs-Verzeichnissen. Mit der entkoppelten Architektur und dem API-Konzept ist Process-Wire natürlich auch ein guter Kandidat für Headless-Konzepte. Für Nicht-Entwickler, die eine Webseite in Eigen-Regie umsetzen möchten, ist ProcessWire ungeeignet.

© by Sebastian Schürmanns, 2017 - 2024. All Rights Reserved. Built with Typemill.