ProcessWire

ProcessWire on avoimen lähdekoodin sisällönhallintajärjestelmä (CMS), Content Management Framework (CMF) ja web-sovelluskehys (WAF), joka on toteutettu PHP-ohjelmointikielellä. Se on jaettu Mozilla Public License 2.0 -lisenssillä. ProcessWire on rakennettu API:n ympärille, jonka käyttö- ja nimeämiskäytännöt ovat samankaltaiset kuin JavaScript-kehyksessä jQuery. API:n tavoitteena on tarjota verkkosivuston sivuille samanlainen saavutettavuus ja hallinta kuin jQuery tarjoaa DOM:lle. Sisältöä hallitaan joko API:n tai verkkopohjaisen hallintapaneelin kautta. ProcessWirea käytetään pääasiassa verkkosivustojen, web-sovellusten, palveluiden, sisältösyötteiden ja niihin liittyvien sovellusten kehittämiseen.

 Ominaisuuksia 

 jQuery-tyylinen API kattavalla dokumentaatiolla
 Graafinen verkkopohjainen asennusohjelma
 Kaikki kentät ovat mukautettuja kenttiä, indeksoitu API:n hakutoimintoja varten
 Voidaan käynnistää muista PHP-sovelluksista tai komentorivi-skripteistä
 Interaktiiviset ja API-pohjaiset kuvankäsittelytoiminnot
 Vedä ja pudota -pohjainen puumainen sivulista
 Vedä ja pudota -tiedosto- ja kuvien lataus- ja muokkaustoiminnot
 Tuki suuremmille (yli 100 000 sivua) asennuksille
 Merkkijonopohjaisten valitsimien käyttö API-kutsuissa
 Roolipohjainen pääsynhallintajärjestelmä
 Ydinkehityksen painotus tietoturvassa
 Merkkauksesta riippumaton tuloste, jättää kaiken tulosteen kehittäjälle
 Mallipohjatiedostot ovat PHP-pohjaisia, mallinemoottoria ei käytetä oletuksena
 Kokonaisten sivujen tai yksittäisten osien välimuistitus
 Monikielinen tuki monikielisillä tekstikentillä ja URL-osoitteilla
 Modulaarinen lisäosa-arkkitehtuuri ja saatavilla olevat kolmannen osapuolen moduulit
 Kenttä- ja syötetyypit ovat itsessään lisäosamoduuleja
 Koukkujärjestelmä, joka mahdollistaa useimpien ydintoimintojen koukuttamisen ja muuttamisen
 Kentät ja kenttäryhmät ovat toistettavissa sisäänrakennettuja Repeater-kenttätyyppejä käyttäen
 Tuki rikkaalle tekstin muokkaukselle käyttäen CKEditoria
 Useita hallintateeman suunnitteluvaihtoehtoja, mukaan lukien moderni "Konkat Default" -teema
 Etupään muokkaustoiminnot sisäänrakennettuina ytimeen
 PHP-nimiavaruuksien tuki

 Moduulit ja laajennettavuus 

ProcessWiressa on modulaarinen lisäosa-arkkitehtuuri, jossa moduulit toimivat ensisijaisena menetelmänä toiminnallisuuden laajentamiseen. Ytimessään ProcessWire itsessään on suurelta osin kokoelma moduuleja, ja hallintasovellus koostuu kokonaan moduuleista. ProcessWiren moduuleja on useita eri lajeja:

 Ydinmoduulit - Sisältyvät ProcessWire-ytimeen `/wire/modules/` -hakemistossa. Monet ovat esiasennettuina, kun taas toiset ovat saatavilla yhdellä napsautuksella asennettaviksi
 Sivustomoduulit - Kolmannen osapuolen tai mukautetut moduulit, jotka on asennettu `/site/modules/` -hakemistoon
 Pro-moduulit - Pääkehittäjän kehittämät kaupalliset moduulit, jotka tarjoavat edistynyttä toiminnallisuutta

Vuodesta 2026 lähtien ProcessWiren moduulihakemistossa on saatavilla yli 637 moduulia. Suhteellisen pienempi moduulien määrä verrattuna muihin CMS-alustoihin, kuten WordPressiin, johtuu ProcessWiren ominaisuusrikkaasta ytimestä, joka sisältää sisäänrakennettua toiminnallisuutta, joka muuten vaatisi erilliset lisäosat.

 Moduulityypit 

ProcessWire tukee useita ennalta määriteltyjä moduulityyppejä:

 Fieldtype-moduulit - Määrittelevät mukautettuja kenttätyyppejä erilaisten tietojen tallentamiseen
 Inputfield-moduulit - Tarjoavat syöttöliittymiä kentille hallinnassa
 Process-moduulit - Luovat hallintasivuja ja -prosesseja
 Textformatter-moduulit - Muotoilevat ja muuntavat tekstitulosteita
 Markup-moduulit - Generoivat merkkausta ja HTML:ää
 Autoload-moduulit - Latautuvat automaattisesti ProcessWiren käynnistyessä, hyödyllisiä koukuille

Moduulien asennus on yksinkertaistettu useiden menetelmien kautta: ZIP-tiedostojen lataaminen hallinnon kautta, lataus-URL-osoitteiden antaminen tai tiedostojen manuaalinen sijoittaminen moduulihakemistoon.

 Kaupalliset Pro-moduulit 

ProcessWire tarjoaa useita kaupallisia Pro-moduuleja, jotka pääkehittäjä Ryan Cramer on kehittänyt:

 FormBuilder - Kattava lomakkeen rakennustyökalu lomakkeiden luomiseen ja hallintaan ilman koodausta
 ProFields - Kokoelma tehokkaita kenttätyyppejä, mukaan lukien Repeater Matrix, Table, Combo ja Custom Fields -moduulit
 ProCache - Edistynyt välimuistimoduuli suorituskyvyn optimointiin
 ProMailer - Sähköpostin hallintatyökalut
 ProDrafts - Luonnos- ja versiohallinta
 ListerPro - Edistynyt sivujen listaus ja hallinta
 LoginRegisterPro - Täydellinen käyttäjärekisteröinti- ja kirjautumisjärjestelmä

Pro-moduulien tuotot tukevat ilmaisen ProcessWire-ytimen jatkokehitystä.

 Kohderyhmä 

Ennen verkkosivuston tai sovelluksen kehitystä ja sen aikana ProcessWiren kohderyhmä koostuu suurelta osin web-kehittäjistä ja web-suunnittelijoista. Tässä kohderyhmässä ProcessWirea käytetään sekä kehitystyökaluna että CMS:nä.

Kehityksen jälkeen kohderyhmä muuttuu henkilöiksi, jotka hallinnoivat verkkosivustojen ja sovellusten sisältöä ja jotka eivät tyypillisesti ole web-suunnittelijoita/-kehittäjiä. Tämä kohderyhmä käyttää ProcessWirea ensisijaisesti CMS:nä sisällön hallintaan.

 Yhteisö 

ProcessWirella on aktiivinen globaali kehittäjien ja käyttäjien yhteisö. Yhteisön ensisijainen keskus on tukifoorumi osoitteessa processwire.com/talk, joka sisältää osiot:

 Yleinen tuki ja API-kehityskysymykset
 Moduulikehitys ja -tuki
 ProcessWirellä rakennettujen verkkosivustojen esittely
 Monikieliset tukikeskustelut
 Tietoturvakeskustelut
 Työpaikkailmoitustaulu ProcessWire-kehittäjien palkkaamiseen

Yhteisö tunnetaan ystävällisestä ja avuliaasta ilmapiiristään, jossa sekä käyttäjät että pääkehittäjä osallistuvat aktiivisesti. ProcessWire ylläpitää viikoittaista uutiskirjettä ja ProcessWire Weeklyä, Teppo Koivulan itsenäistä julkaisua, joka käsittelee ProcessWire-uutisia ja web-kehitysaiheita.

Yhteisö on kehittänyt lukuisia kolmannen osapuolen moduuleja, sivustoprofiileja ja oppaita. Virallisen verkkosivuston esittelyosio esittelee ProcessWirellä rakennettuja verkkosivustoja pienistä yritysten sivustoista suuriin institutionaalisiin verkkosivustoihin.

 Historia 

ProcessWirea on kehitetty aktiivisesti vuodesta 2003. Vuosina 2003–2007 sitä kehitettiin nimellä Dictator CMS. Vuosina 2007–2010 sitä kehitettiin nimellä ProcessWire 1.x. ProcessWirestä tuli avoimen lähdekoodin yhteisöprojekti vuonna 2010, ja sitä kehitetään tällä hetkellä versioina ProcessWire 2.x ja 3.x.

ProcessWirellä on ollut useita merkittäviä versiojulkaisuja ensimmäisen avoimen lähdekoodin julkaisun jälkeen. Versio 3.0, joka julkaistiin syyskuussa 2016, merkitsi toista pääversiojulkaisua ja esitteli PHP-nimiavaruudet, etupään muokkaustoiminnot ja tuen käännetyille moduuleille.

Versio 3.0.255, joka julkaistiin 16. tammikuuta 2026, esitteli useita merkittäviä parannuksia:
 Uuden modernin hallintasuunnitteluteeman nimeltä "Konkat Default", jonka Konkat Studio (Jan Ploch ja Diogo Oliveira) loi, tarjoten nykyaikaisemman ulkonäön, jota voidaan vaihtaa alkuperäisen "Core Original" -suunnittelun kanssa
 Parannettu Markup Regions -toiminnallisuus, joka mahdollistaa merkkausalueiden muokkaamisen tiedostoista, jotka aiemmin vain määrittelivät ne
 Laajennettu API-dokumentaatio noin 50 ydinmoduulille
 Päivitykset ydin-JavaScript-API-toimintoihin Uikit-modaalien käyttämiseksi Vex-modaalien sijaan
 Uudet JavaScript-API-menetelmät entiteettien koodaukseen/dekoodaukseen
 ZipFileValidator-moduulin käyttöönotto parannetun tietoturvan vuoksi

Järjestelmä on säilyttänyt johdonmukaisuuden ja taaksepäin yhteensopivuuden koko kehityksensä ajan jatkuvilla päivityksillä säilyttäen samalla alkuperäiset API-konseptit ja nimeämiskäytännöt.

 Käännökset ja yhteisö 

ProcessWirella on aktiiviset, globaalit loppukäyttäjä- ja kehittäjäyhteisöt. Nämä yhteisöt ovat kääntäneet ProcessWiren englannista omille äidinkielilleen, mukaan lukien: kiina, kroatia, tšekki, hollanti, ranska, saksa, kreikka, heprea, unkari, italia, japani, portugali, venäjä, slovakki, espanja, ruotsi, turkki, ukraina ja vietnam. ProcessWire-yhteisöjen keskeisin keskus löytyy kehittäjien tukifoorumeilta.

 Vertailu muihin alustoihin 

ProcessWirea verrataan usein muihin sisällönhallintajärjestelmiin, erityisesti WordPressiin. Virallinen vertailu korostaa useita keskeisiä eroja:

 ProcessWire on rakennettu ensisijaisesti kehyksenä, jossa CMS on sovellus sen päällä, kun taas WordPress sai alkunsa bloggausalustana
 Kaikki ProcessWiren kentät ovat oletuksena mukautettuja kenttiä, kun taas WordPress erottaa vakio- ja mukautetut kentät
 ProcessWire käyttää hierarkkista sivupuurakennetta kaikelle sisällölle, kun taas WordPress käyttää erillisiä julkaisutyyppejä ja taksonomioita
 ProcessWire korostaa kehittäjän hallintaa tulosteen merkkauksessa ollen merkkauksesta riippumaton, kun taas WordPress käyttää teemajärjestelmiä
 ProcessWirella on pienempi moduuliekosysteemi (yli 600 moduulia) verrattuna WordPressiin (yli 40 000 lisäosaa), suurelta osin siksi, että ydintoiminnallisuus on kattavampi

 Palkinnot ja julkaisut 

Marraskuussa 2016 ProcessWire palkittiin CMS Criticin parhaana pienyritysten CMS:nä.

Heinäkuussa 2016 Smashing Magazine julkaisi artikkelin A Beginners Guide to ProcessWire.

Tammikuusta 2016 lähtien Envato Tuts+ on julkaissut useita artikkeleita ja oppaita ProcessWirestä.

Tammikuussa 2015 ProcessWire palkittiin CMS Criticin parhaana ilmaisena PHP-CMS:nä.

Joulukuussa 2014 PHP Architect julkaisi artikkelin ProcessWire: Flexibility, Power, and a Generous Dose of Pure Fun.

Joulukuussa 2012 ProcessWire palkittiin CMS Criticin parhaana ilmaisena CMS:nä.

 Arkkitehtuuri 

ProcessWire on rakennettu sivujen sisältöpuun ympärille (toisin kuin säiliöjärjestelmä). Jokaisen sivun URL tai polku heijastaa aina sen paikkaa hierarkiassa. Samaa polkua käytetään sivun viittaamiseen API:ssa. Tämän seurauksena polun yhteys sisäiseen puuhierarkiaan määrittää ProcessWiren arkkitehtuurin. Sisältöpuun merkitsemän vanhempi-lapsi-suhteen lisäksi ProcessWire tukee relaatio yhden-suhde-yhteen ja yhden-suhde-moneen -viittauksia puun sivujen välillä.

 Mallipohja-arkkitehtuuri 

Mallipohjat ProcessWiressa ovat sisältötyyppi, joka sisältää yhden tai useamman mukautetun kentän, jotka edustavat sisältötyypin määritelmää. Jokainen ProcessWiren sivu on määritetty mallipohjaksi, joka sitten edustaa sivun tyyppiä. Mallipohja jaetaan tyypillisesti useiden sivujen kesken. Mallipohjat määrittelevät myös pääsynvalvonnan, välimuistituksen ja muut asetukset, jotka jaetaan mallipohjaa käyttävien sivujen kesken.

Mallipohilla on valinnaisesti liittyvä PHP-tiedosto, johon viitataan mallipohjan tiedostona. Tämä tiedosto suoritetaan aina, kun mallipohjaa käyttävän sivun URL-osoitteeseen pääsee. Tämän seurauksena mallipohjan tiedostoja käytetään tyypillisesti tulostustarkoituksiin. Mallipohjan tiedostolle tarjotaan useita API-muuttujia, joista huomattavin on $page API-muuttuja, joka sisältää kaikki tarkasteltavan nykyisen sivun kentät ja sisällön.

Mallipohjan tiedostot palvelevat useita konteksteja sovelluksesta riippuen. ProcessWiren oletusverkkosivustoprofiilit käyttävät mallipohjan tiedostoja ensisijaisesti suoran ja dynaamisesti generoidun HTML-merkkauksen tulosteeseen. Mallipohjan tiedostoja voidaan käyttää myös välisenä ohjaimena mallin ja erillisen näkymän välillä. Koska mallipohjan tiedostot ovat tavallisia PHP-tiedostoja, ne voivat tarvittaessa käyttää muita verkkopalveluita tai PHP-sovelluksia ilman erillistä jäsennystasoista.

 Kenttä-arkkitehtuuri 

Kaikki ProcessWiren kentät ovat käyttäjän määrittämiä mukautettuja kenttiä. Tietty kenttä voidaan määrittää useille mallipohjille, jotka puolestaan sisältävät yksittäisiä sisältöpaloja kullekin mallipohjaa käyttävälle sivulle. Jokaisella kentällä on tyyppi, johon viitataan nimellä "fieldtype" (yksi sana), eräänlainen lisäosamoduuli. ProcessWire sisältää useita fieldtype-moduuleja, mukaan lukien sellaiset, jotka tukevat tekstiä, numeroita, tiedostoja, kuvia, sivuviittauksia, URL-osoitteita, sähköpostiosoitteita, päivämääriä ja kommentteja. Lisää fieldtype-moduuleja asennetaan kolmannen osapuolen moduuleina.

 Sivurakenne 

ProcessWire käyttää hierarkkista puumaista rakennetta kaiken sisällön järjestämiseen sivuina. Tämä rakenne on samankaltainen kuin tiedostojärjestelmä, ilman asetetuja syvyysrajoituksia. Järjestelmä on suunniteltu skaalautumaan yhden sivun verkkosivustoista miljoonien sivujen asennuksiin säilyttäen samalla johdonmukaisen suorituskyvyn ja helppokäyttöisyyden. Kaikki navigointi ja sisällön väliset suhteet perustuvat tähän puurakenteeseen, jota voidaan kulkea läpi sekä hallintaliittymän että API:n kautta.

 Tietoturva 

ProcessWire painottaa vahvasti tietoturvaa koko ydinkehityksensä ajan. Järjestelmä sisältää:

 Roolipohjaisen pääsynhallinnan tarkkojen käyttöoikeuksien kanssa
 Sisäänrakennettu suoja yleisiä haavoittuvuuksia vastaan (SQL-injektio, XSS, CSRF)
 Säännölliset tietoturvatarkastukset ja päivitykset
 Validointi- ja puhdistustyökalut koko API:ssa
 Tiedostojen latauksen validointi ja turvatoimenpiteet
 Istunnon tietoturvaominaisuudet

ProcessWire on säilyttänyt vahvan tietoturvaennätyksen koko historiansa ajan ilman merkittäviä tietoturvatapauksia tai katkoksia.

 Jakelu ja vaatimukset 

ProcessWiren lähdekoodi on isännöity GitHubissa ja se jaetaan myös Softaculousissa, Bitnamissa ja Composer/Packagistissa.

ProcessWire toimii AMP-alustalla (Apache, MySQL tai MariaDB, PHP), jota monet hosting-palveluntarjoajat ja web-kehitysympäristöt käyttävät. ProcessWire vaatii PHP-version 5.3.8 tai uudemman sekä MySQL:n tai MariaDB:n 5.0.15 tai uudemman.

 Merkittäviä toteutuksia 

ProcessWire toimii monipuolisilla verkkosivustoilla, mukaan lukien:
 Hallituksen ja institutionaaliset verkkosivustot
 Matkailu- ja kohdemarkkkinointisivustot
 Yrityssivustot
 Verkkokauppa-alustat
 Uutis- ja mediajulkaisut
 Oppilaitokset
 Kulttuuriorganisaatiot ja museot

Alustan joustavuus tekee siitä sopivan sekä yksinkertaisille verkkosivustoille että monimutkaisille web-sovelluksille.

 Lähteet 

 Aiheesta muualla 
 ProcessWiren virallinen sivusto 
 ProcessWire vs WordPress -vertailu 
 ProcessWire-moduulihakemisto 
 ProcessWire-tukifoorumit 
 ProcessWire GitHubissa 

Luokka:Vapaat ohjelmistot
Luokka:Sisällönhallintajärjestelmät
Luokka:PHP-kehykset
Luokka:Alustariippumattomat ohjelmistot