ProcessWire
ProcessWire is een vrij en open source contentmanagementsysteem (CMS), content management framework (CMF) en webapplicatieframework (WAF) voor het bouwen van websites. Het is geschreven in de programmeertaal PHP en wordt gedistribueerd onder de Mozilla Public License 2.0. ProcessWire is gebouwd rond een API met gebruiks- en naamgevingsconventies vergelijkbaar met het JavaScript-framework jQuery. Het doel achter de API is om hetzelfde niveau van toegankelijkheid en controle over webpagina's te bieden dat jQuery biedt aan de DOM. Inhoud wordt beheerd via de API of het webgebaseerde beheerpaneel. ProcessWire wordt voornamelijk gebruikt voor de ontwikkeling van websites, webapplicaties en contentfeeds.
| ProcessWire | ||||
|---|---|---|---|---|
| Ontwerp en ontwikkeling | ||||
| Categorie | Contentmanagementsysteem | |||
| Ontwikkelaar(s) | Ryan Cramer | |||
| Besturingssysteem | platformonafhankelijk | |||
| Geschreven in | PHP | |||
| Status en tijdlijn | ||||
| Recentste versie | 3.0.255 (16 januari 2026)[1] | |||
| Onderdelen | ||||
| Licentie(s) | Mozilla Public License 2.0 | |||
| Links | ||||
| Website | processwire.com | |||
| Versiebeheer | Broncode | |||
| ||||
ProcessWire is een vrij en open source contentmanagementsysteem (CMS), content management framework (CMF) en webapplicatieframework (WAF) voor het bouwen van websites. Het is geschreven in de programmeertaal PHP en wordt gedistribueerd onder de Mozilla Public License 2.0.
ProcessWire is gebouwd rond een API met gebruiks- en naamgevingsconventies vergelijkbaar met het JavaScript-framework jQuery. Het doel achter de API is om hetzelfde niveau van toegankelijkheid en controle over webpagina's te bieden dat jQuery biedt aan de DOM.[2] Inhoud wordt beheerd via de API of het webgebaseerde beheerpaneel. ProcessWire wordt voornamelijk gebruikt voor de ontwikkeling van websites, webapplicaties en contentfeeds.
Kenmerken
[bewerken | brontekst bewerken]- jQuery-stijl API met uitgebreide documentatie[3]
- Grafisch webgebaseerd installatieprogramma
- Alle velden zijn aangepaste velden, geïndexeerd voor zoekoperaties in de API
- Kan worden gestart vanuit andere PHP-applicaties of command-line scripts[4]
- Interactieve en API-gebaseerde beeldmanipulatiefuncties
- Boomstructuur paginaoverzicht met slepen en neerzetten
- Bestands- en afbeeldingsuploads en bewerkingsfuncties via slepen en neerzetten
- Ondersteuning voor grootschalige installaties (100.000+ pagina's)
- Gebruik van op strings gebaseerde selectors voor API-aanroepen[5]
- Op rollen gebaseerd authenticatiesysteem
- Nadruk op beveiliging[6]
- De gegenereerde opmaak wordt volledig bepaald door de ontwikkelaar.
- Sjabloonbestanden zijn gebaseerd op PHP, er wordt standaard geen template-engine gebruikt
- Output caching van hele pagina's of individuele delen
- Meertalige ondersteuning met meertalige tekstvelden en URL's[7]
- Modulaire plugin-architectuur en beschikbare modules van derden[8]
- Veld- en invoertypen zijn zelf plugin-modules
- Hook-systeem dat het mogelijk maakt om de meeste kernfuncties te wijzigen[9]
- Velden en veldgroepen zijn herhaalbaar met behulp van ingebouwde Repeater-veldtypen
- Ondersteuning voor rich text editing met CKEditor
- Meerdere ontwerpopties voor beheerthema's, inclusief het moderne "Konkat Default"-thema
- Frontend-bewerkingsmogelijkheden ingebouwd in de kern
- Ondersteuning voor PHP-namespaces
Modules en uitbreidbaarheid
[bewerken | brontekst bewerken]ProcessWire heeft een modulaire plugin-architectuur waarbij modules dienen als de primaire methode om functionaliteit uit te breiden. In de kern is ProcessWire zelf grotendeels een verzameling modules, waarbij de beheerapplicatie volledig uit modules bestaat. Modules in ProcessWire komen in verschillende soorten:
- Kernmodules - Inbegrepen bij de ProcessWire-kern in de map `/wire/modules/`. Veel zijn vooraf geïnstalleerd, terwijl andere beschikbaar zijn voor installatie met één klik
- Sitemodules - Modules van derden of aangepaste modules geïnstalleerd in de map `/site/modules/`
- Pro-modules - Commerciële modules ontwikkeld door de hoofdontwikkelaar die geavanceerde functionaliteit bieden
Anno 2026 zijn er meer dan 637 modules beschikbaar in de ProcessWire-modulemap.[10] Het relatief kleinere aantal modules in vergelijking met andere CMS-platforms zoals WordPress wordt toegeschreven aan de functierijke kern van ProcessWire, die ingebouwde functionaliteit bevat die anders afzonderlijke plugins zou vereisen.[11]
Moduletypes
[bewerken | brontekst bewerken]ProcessWire ondersteunt verschillende voorgedefinieerde moduletypes:
- Fieldtype-modules - Definiëren aangepaste veldtypen voor het opslaan van verschillende soorten gegevens
- Inputfield-modules - Bieden invoerinterfaces voor velden in de beheeromgeving
- Process-modules - Creëren beheerpagina's en processen
- Textformatter-modules - Formatteren en transformeren tekstuitvoer
- Markup-modules - Genereren markup en HTML
- Autoload-modules - Laden automatisch wanneer ProcessWire opstart, nuttig voor hooks
Module-installatie is vereenvoudigd via meerdere methoden: uploaden van ZIP-bestanden via de beheerder, verstrekken van download-URL's of handmatig plaatsen van bestanden in de modulemap.
Commerciële Pro-modules
[bewerken | brontekst bewerken]ProcessWire biedt verschillende commerciële Pro-modules ontwikkeld door Ryan Cramer, de hoofdontwikkelaar:
- FormBuilder - Een uitgebreid formulierenbouwtool voor het maken en beheren van formulieren zonder codering[12]
- ProFields - Een verzameling krachtige veldtypen waaronder Repeater Matrix, Table, Combo en Custom Fields-modules[13]
- ProCache - Geavanceerde cachingmodule voor prestatie-optimalisatie
- ProMailer - E-mailbeheertools
- ProDrafts - Concepten en revisiebeheer
- ListerPro - Geavanceerde paginaweergave en -beheer
- LoginRegisterPro - Compleet gebruikersregistratie- en inlogsysteem
Inkomsten uit Pro-modules ondersteunen de voortdurende ontwikkeling van de gratis ProcessWire-kern.
Doelgroep
[bewerken | brontekst bewerken]Vóór en tijdens de ontwikkeling van een website of applicatie bestaat het publiek van ProcessWire grotendeels uit webontwikkelaars en webdesigners.[14] Binnen dit publiek wordt ProcessWire gebruikt als zowel ontwikkelingstool als CMS.
Na de ontwikkeling verandert het publiek in personen die inhoud beheren voor websites en applicaties, die doorgaans geen webdesigners/ontwikkelaars zijn. Dit publiek gebruikt ProcessWire voornamelijk als CMS om inhoud te beheren.
Gemeenschap
[bewerken | brontekst bewerken]ProcessWire heeft een actieve mondiale gemeenschap van ontwikkelaars en gebruikers. Het belangrijkste centrum van de gemeenschap is het ondersteuningsforum op processwire.com/talk, dat secties omvat voor:
- Algemene ondersteuning en API-ontwikkelingsvragen
- Module-ontwikkeling en ondersteuning
- Showcase van websites gebouwd met ProcessWire
- Meertalige ondersteuningsdiscussies
- Beveiligingsdiscussies
- Vacaturebord voor het inhuren van ProcessWire-ontwikkelaars
De gemeenschap staat bekend om haar vriendelijke en behulpzame sfeer, met actieve deelname van zowel gebruikers als de hoofdontwikkelaar. ProcessWire onderhoudt een wekelijkse nieuwsbrief en ProcessWire Weekly, een onafhankelijke publicatie van Teppo Koivula over ProcessWire-nieuws en webontwikkelingsonderwerpen.
De gemeenschap heeft talrijke modules van derden, siteprofielen en tutorials ontwikkeld. Een showcase-sectie op de officiële website toont websites gebouwd met ProcessWire, variërend van kleine bedrijfssites tot grote institutionele websites.
Geschiedenis
[bewerken | brontekst bewerken]ProcessWire is sinds 2003 in actieve ontwikkeling. Van 2003 tot 2007 werd het ontwikkeld onder de naam Dictator CMS. Van 2007 tot 2010 werd het ontwikkeld als ProcessWire 1.x. ProcessWire werd in 2010 een open source gemeenschapsproject en wordt momenteel ontwikkeld als ProcessWire 2.x en 3.x.[15]
ProcessWire heeft meerdere significante versiereleases gehad sinds de eerste open source release. Versie 3.0 uitgebracht in september 2016 markeerde de tweede grote versierelease, waarbij PHP-namespaces, frontend-bewerkingsmogelijkheden en ondersteuning voor gecompileerde modules werden geïntroduceerd.[16]
Versie 3.0.255, uitgebracht op 16 januari 2026, introduceerde verschillende belangrijke verbeteringen:
- Een nieuw modern beheerontwerpthema genaamd "Konkat Default" gemaakt door Konkat Studio (Jan Ploch en Diogo Oliveira), dat een meer eigentijdse uitstraling biedt die kan worden gewisseld met het originele "Core Original"-ontwerp
- Verbeterde Markup Regions-functionaliteit, waardoor wijziging van markup-regio's mogelijk is vanuit bestanden die ze eerder alleen definieerden
- Uitgebreide API-documentatie voor ongeveer 50 kernmodules
- Updates van kern-JavaScript API-functies om Uikit-modals te gebruiken in plaats van Vex-modals
- Nieuwe JavaScript API-methoden voor entiteitscodering/-decodering
- Introductie van ZipFileValidator-module voor verbeterde beveiliging[17]
Het systeem heeft consistentie en achterwaartse compatibiliteit behouden gedurende zijn ontwikkeling, met voortdurende updates terwijl de oorspronkelijke API-concepten en naamgevingsconventies behouden bleven.
Vertalingen en gemeenschap
[bewerken | brontekst bewerken]ProcessWire heeft actieve, mondiale eindgebruikers- en ontwikkelaarsgemeenschappen. Deze gemeenschappen hebben ProcessWire van het Engels naar hun moedertalen vertaald, waaronder: Chinees, Kroatisch, Tsjechisch, Nederlands, Frans, Duits, Grieks, Hebreeuws, Hongaars, Italiaans, Japans, Portugees, Russisch, Slowaaks, Spaans, Zweeds, Turks, Oekraïens en Vietnamees. Het centrale middelpunt van de ProcessWire-gemeenschappen bevindt zich in de ontwikkelaarsondersteuningsforums.[14]
Vergelijking met andere platforms
[bewerken | brontekst bewerken]ProcessWire wordt vaak vergeleken met andere contentmanagementsystemen, met name WordPress. De officiële vergelijking benadrukt verschillende belangrijke verschillen:
- ProcessWire is in de eerste plaats gebouwd als framework, met het CMS als een applicatie erbovenop, terwijl WordPress ontstond als een blogplatform
- Alle velden in ProcessWire zijn standaard aangepaste velden, terwijl WordPress onderscheid maakt tussen standaard- en aangepaste velden
- ProcessWire gebruikt een hiërarchische paginaboomstructuur voor alle inhoud, terwijl WordPress afzonderlijke berichttypen en taxonomieën gebruikt
- ProcessWire benadrukt ontwikkelaarscontrole over output-markup, markup-agnostisch zijnde, terwijl WordPress themasystemen gebruikt
- ProcessWire heeft een kleiner module-ecosysteem (600+ modules) vergeleken met WordPress (40.000+ plugins), grotendeels omdat de kernfunctionaliteit uitgebreider is[18]
Architectuur
[bewerken | brontekst bewerken]ProcessWire is gebouwd rond een pagina-inhoudsboom (in tegenstelling tot een bucketsysteem). De URL of het pad van elke pagina weerspiegelt altijd zijn plaats in de hiërarchie. Dit pad wordt gebruikt om naar de pagina te verwijzen in de API. Als gevolg hiervan definieert deze verbinding van het pad met de interne boomhiërarchie de architectuur van ProcessWire. Naast de ouder-kindrelatie die wordt geïmpliceerd door een inhoudsboom, ondersteunt ProcessWire relationele een-op-een en een-op-veel verwijzingen tussen pagina's in de boom.
Sjabloonarchitectuur
[bewerken | brontekst bewerken]Sjablonen in ProcessWire zijn een inhoudstype dat een of meer aangepaste velden bevat die de definitie van het inhoudstype vertegenwoordigen. Elke pagina in ProcessWire is toegewezen aan een sjabloon dat vervolgens het type pagina vertegenwoordigt. Een sjabloon wordt doorgaans gedeeld tussen meerdere pagina's. Sjablonen definiëren ook toegangscontrole, caching en andere instellingen die worden gedeeld tussen pagina's die het sjabloon gebruiken.
Sjablonen hebben optioneel een geassocieerd PHP-bestand, het sjabloonbestand genoemd. Dit bestand wordt uitgevoerd wanneer de URL voor een pagina die het sjabloon gebruikt, wordt geopend. Als gevolg hiervan worden sjabloonbestanden doorgaans gebruikt voor outputdoeleinden. Het sjabloonbestand krijgt verschillende API-variabelen aangeboden, waarvan de meest opvallende de $page API-variabele is, die alle velden en inhoud van de huidige pagina die wordt bekeken bevat.[19]
Sjabloonbestanden dienen meerdere contexten, afhankelijk van de applicatie. De standaardwebsiteprofielen van ProcessWire gebruiken sjabloonbestanden voornamelijk voor output van directe en dynamisch gegenereerde HTML-markup. Sjabloonbestanden kunnen ook worden gebruikt als tussenliggende controllers tussen een model en een aparte view. Omdat sjabloonbestanden reguliere PHP-bestanden zijn, kunnen ze waar nodig andere webservices of PHP-applicaties aanroepen, zonder een aparte parselaag.
Veldarchitectuur
[bewerken | brontekst bewerken]Alle velden in ProcessWire zijn aangepaste velden gedefinieerd door de gebruiker. Een bepaald veld kan worden toegewezen aan meerdere sjablonen, die op hun beurt individuele stukken inhoud bevatten voor elke pagina die dat sjabloon gebruikt. Elk veld heeft een type, het "fieldtype" genoemd (één woord), een type pluginmodule. ProcessWire bevat verschillende fieldtype-modules waaronder die welke tekst, getallen, bestanden, afbeeldingen, paginaverwijzingen, URL's, e-mailadressen, datums en opmerkingen ondersteunen. Aanvullende fieldtype-modules worden geïnstalleerd als modules van derden.
Paginastructuur
[bewerken | brontekst bewerken]ProcessWire gebruikt een hiërarchische boomstructuur om alle inhoud als pagina's te organiseren. Deze structuur is vergelijkbaar met een bestandssysteem, zonder opgelegde limieten aan de diepte. Het systeem is ontworpen om te schalen van eenvoudige websites met één pagina tot installaties met miljoenen pagina's, waarbij consistente prestaties en gebruiksgemak behouden blijven.
Alle navigatie en relaties tussen inhoud zijn gebaseerd op deze boomstructuur, die kan worden doorlopen via zowel de beheerinterface als de API.
Beveiliging
[bewerken | brontekst bewerken]ProcessWire legt de nadruk op beveiliging. Het systeem omvat:
- Op rollen gebaseerde toegangscontrole met gedetailleerde rechten
- Ingebouwde bescherming tegen veelvoorkomende kwetsbaarheden (SQL-injectie, XSS, CSRF)
- Regelmatige beveiligingsaudits en updates
- Validatie- en sanitatietools in de hele API
- Bestandsuploadvalidatie en beveiligingsmaatregelen
- Sessiebeveiligingsfuncties
Distributie en vereisten
[bewerken | brontekst bewerken]De broncode van ProcessWire wordt gehost op GitHub en wordt ook gedistribueerd via Softaculous, Bitnami en Composer/Packagist.
ProcessWire draait op het AMP-platform (Apache, MySQL of MariaDB, PHP) dat wordt gebruikt door veel hostingproviders en webontwikkelomgevingen. ProcessWire vereist PHP versie 5.3.8 of nieuwer, en MySQL of MariaDB 5.0.15 of nieuwer.[20]
Referenties
[bewerken | brontekst bewerken]- ↑ https://github.com/processwire/processwire/releases/tag/3.0.255.
- ↑ (en) The concept behind the API.
- ↑ (en) ProcessWire API reference documentation.
- ↑ (en) Bootstrapping ProcessWire.
- ↑ (en) Selectors in ProcessWire.
- ↑ (en) ProcessWire Security.
- ↑ (en) Multi-language support.
- ↑ (en) Directory of modules.
- ↑ (en) ProcessWire Hooks.
- ↑ (en) ProcessWire modules directory.
- ↑ (en) A Beginner's Guide to ProcessWire. Smashing Magazine (22 juli 2016).
- ↑ (en) FormBuilder.
- ↑ (en) ProFields.
- ↑ a b (en) ProcessWire community (26 januari 2024).
- ↑ (en) ProcessWire history and background.
- ↑ (en) ProcessWire 3.0 changelog.
- ↑ (en) ProcessWire 3.0.255 new main/master version (23 januari 2026).
- ↑ (en) WordPress vs ProcessWire comparison.
- ↑ (en) The $page API variable.
- ↑ (en) How to install ProcessWire CMS. processwire.com. Geraadpleegd op 2 mei 2024.
Externe links
[bewerken | brontekst bewerken]- Officiële website
- ProcessWire vs WordPress vergelijking
- ProcessWire modulemap
- ProcessWire ondersteuningsforums