BuroDenG!
Menu

Veel voorkomende uitdagingen bij het updaten van ExpressionEngine websites en hoe deze op te lossen

Je hebt een oude site waar je jaren aan gebouwd hebt. Honderden artikelen heb je geschreven, cases, blogberichten etc. Dat wil je niet zomaar kwijt. Opnieuw beginnen kan natuurlijk altijd, maar vaak wil je graag je positie in de zoekmachines behouden, en dus de oude content. Updaten zou dan de voorkeur hebben. Waar moet je op letten en wat kan je verwachten als je je EECMS site wilt updaten?
Eerst even wat achtergrond informatie.

Verschillende versies van ExpressionEngine, pMachine en MojoMotor

EE begon zijn leven als pMachine, een weblog tool welke rond 2002 werd geintroduceerd. Wij bouwden hier toen het weblog "Zinloosgeweldig.net" mee, een van de eerste weblogs in Nederland. Enige jaren later (2004) werd ExpressionEngine 1 gelanceerd. Dit was een volwaardig CMS systeem, met nog wat herinneringen aan de weblogtool die het eerder was, maar al wel veel beter uitbreidbaar met "addons". Er ontstond een levendig aanbod aan verschillende plugins die door allerhand verschillende ontwikkelaars werden aangeboden.

Enige tijd later (2009) werd de nieuwe versie van ExpressionEngine gelanceerd, en deze werd door veel ontwikkelaars opgepakt en werd veelvuldig ingezet om de meest uiteenlopende websites aan te sturen. Ook ontstond MojoMotor: een soort Light variant van EE2. De addon markt explodeerde en duizenden plugins werden gelanceerd. Deze versie van EE draaide een fiks aantal jaren voordat er een nieuwe stap gezet werd met de lancering van ExpressionEngine 3.

Flinke modernisering bij de lancering van ExpressionEngine 3

Een groot deel van de achterliggende programmering van het CMS is herschreven en gemoderniseerd. Een wereld van verschil in vergelijking met EE2. Echter door deze vernieuwde programmering waren niet alle plugins die voor EE2 zijn ontwikkeld meer compatible met de nieuwe programmering van EE3. Sommige van deze plugins hebben maar kleine aanpassingen nodig om binnen EE3 te kunnen functioneren, andere moeten compleet herschreven worden. Dit is overigens niet alleen vanwege de veranderingen in de programmering van EE; PHP, het besturingssysteem waarop EE draait, is in de loop der jaren ook compleet veranderd.

Van ExpressionEngine 3 naar ExpressionEngine 4 updaten is een kleine stap.

In 2017 werd versie 4 van EE gelanceerd. De basis die in versie 3 is gelegd werd uitgebreid met een hele stapel nieuwe functionaliteiten, waardoor de afhankelijkheid van veel additionele plugins verdween. Het grootste deel van de plugins die op EE3 werken, doen het ook op EE4. De addon markt is nu een stuk overzichtelijker geworden. De voorheen enorme hoeveelheid beschikbare addons is nu een stuk overzichtelijker, en over het algemeen wordt deze software stukken beter onderhouden als voorheen, waar dit soms WordPress achtige toestanden gaf.

Van EE4 naar EE5 upgraden is vooral een administratieve stap

ExpressionEngine werd in 2018 Open Source en vanwege de juridische aspecten (het is nou eenmaal een Amerikaanse product) was het noodzakelijk dat het versie nummer veranderde. de basis is echter hetzelfde als versie 4. 

Wat zijn de grootste problemen bij het updaten van ExpressionEngine

Simpel gezegd: tijd. De meeste EE websites die wij tegenkomen zijn al lang geleden gebouwd, en niet goed bijgehouden. De tijd heeft dus het CMS ingehaald. En dan kost het meer tijd om de site weer bij de tijd te krijgen. Tijd dus vooral. Net als bij WordPress is het van belang om je site goed geupdate te houden. Bij WordPress is dat vooral om de site enigzins veilig te houden, dat is het probleem niet bij ExpressionEngine. Bij ExpressionEngine is het vooral om tijdig wijzigingen / bugs te kunnen onderkennen en verhelpen zodat het up to date houden bevatbaar blijft. 15 jaar achterstallig onderhoud is nou eenmaal lastiger en tijdrovender te verhelpen dan als je site een paar versies achterloopt.

Grootste uitdaging bij het updaten van ExpressionEngine: externe software / plugins

Het probleem bij plugins is meerledig. Soms is een plugin ooit door iemand ontwikkeld maar niet meer verder onderhouden. Veel van deze addons worden even snel ontwikkeld om een specifiek probleem op te lossen, en de ontwikkelaar denkt dan "Hé misschien kan dit handig zijn voor anderen" en biedt de plugin vervolgen ter download aan. Maar als de ontwikkelaar vervolgens geen interesse meer heeft in de plugin wordt deze niet meer geactualiseerd en is op termijn niet meer compatible met nieuwe versies van PHP of EE.
Een ander probleem is dat sommige plugins "teveel" doen. Dat betekent dat er als het ware een klein CMS binnen het grote CMS draait, en de sites voor een groot deel van hun kern functionaliteit afhankelijk zijn van een plugin. Als deze plugin dan niet geupdate wordt kan het zijn dat de site in zijn geheel niet meer "zomaar" te updaten valt. Vaak is het echter wel mogelijk om de functionaliteiten te herbouwen in EE, met een beetje slimmigheid. 

PHP versies en PHP in templates

Stel dat de plugin die in je site is geinstalleerd s geschreven in 2009, ten tijde van php5.6. Dikke kans dat deze dan nu in 2020 niet meer goed werkt met PHP7.4. In de loop der tijd zijn er grote verschillen ontstaan in de manier waarop PHP, het besturingssysteem, werkt. Dat betekent dat de plugin eerst moet worden herschreven om met PHP7 te kunnen werken. Dat kan een flinke onderneming zijn. Soms is het dan ook beter om te kijken of de plugin uberhaupt wel nodig is, en of dit niet op een andere meer "native" manier opgelost kan worden.

Hetzelfde geldt voor PHP in templates. Op zich is het een enorm krachtige functionaliteit dat je binnen het CMS ook met pure PHP kan werken. Maar niet zonder gevaar. Je code kan verouderd zijn, en de code kan ervoor zorgen dat de functionaliteiten buiten de werking van EE "getild" wordt. Dat  betekent dat er met code allemaal dingen gebeuren waarvan EE niks afweet. Dat is vragen om moeilijkheden. We zijn dit vaak tegen gekomen bij sites die in het verre oosten zijn geaakt, of door ontwikkelaars die eigenlijk niet zo goed snappen hoe ExpressionEngine werkt. Veelal is het helemaal niet nodig om kernfunctionaliteiten met PHP op te lossen binnen EE. Het kost iets meer moeite, maar is een stuk veiliger en duurzamer om zoveel mogelijk binnen de eigen templating taal op te lossen.

Hosting providers ondersteunen geen oudere versies van PHP meer

We hebben het al een paar keer voorbij zien komen. "Opeens" is de site uit de lucht en je staart naar een wit scherm. Het zou dan zomaar kunnen (en is ook vaak het geval) dat er wijzigingen aan de hosting omgeving zijn aangebracht door de hosting provider. Meestal is dit wel aangekondigd per mail, maar we zien vaak dat deze mails niet aankomen bij de juiste personen in de organisatie. En dan heeft de hosting provider dus plotseling je verouderde PHP versie verwijderd en doet je site het niet meer als deze op een versie van EE draait die ouder is dan 2.11.9.

ExpressionEngine 2.11.9 kan op PHP7 draaien, maar ook die versie van PHP wordt al uitgefaseerd. Je ExpressionEngine versie moet dus minimaal PHP7.3 ondersteunen, en daarvoor heb je minimaal ExpressionEngine 5.1.0 nodig. 

Oplossingen

De eerste stap is om na te gaan op welke vversie van EE je site draait. Vervolgens is het goed om na te gaan welke addons er allemaal geinstalleerd zijn, in welke versie en of deze ook allemaal actief gebruikt worden. 
Per addon die je na te gaan of deze in de recentste versie van EE nog noodzakelijk zou zijn. Is het tegenwoordig mogelijk om de gewenste functionaliteit ook op een andere manier te realiseren. Voor de addons die niet strikt genomen noodzakelijk zijn geldt dat je deze eventueel kunt de-installeren. De addons die wel noodzakelijk voor je site zijn soms niet beschikbaar voor de nieuwere versies van EE. Vaak is er echter wel een vergelijkbare addon beschikbaar waarmee je met wat kleine wijzigingen toch de functionaliteit kan overeind houden.
Maar het kan ook zo zijn dat de addon die je gebruikt wel noodzakelijkerwijs geupdate moet worden. Dan dient deze dus (deels) herschreven te worden. 
Het doel is in ieder geval om met zo min mogelijk ballast de feitelijke update in te gaan. 

Als je van EE1 naar EE5 wilt updaten volg je deze stappen

Na de addons getackled te hebben zal je handmatig van EE1 naar EE2 en vandaar naar EE3 moeten updaten. Het beste doe je dit op een test server waar je volledige vrijheid hebt om de versie van PHP aan te passen. 
Zodra je site op EE3 draait kan je in één keer updaten naar ExpressionEngine 5.x met behulp van de one click updater. Vergeet echter niet tussendoor backups te maken zodat je niet helemaal terug hoeft als er onverhoopt iets niet goed gaat met de update (en geloof mij.... dat is geen overbodige luxe)

Dit is een call to action

Heb je behoefte aan een uiterst ervaren partij om je ExpressionEngine website te updaten?

Klik hier om ons een mailtje te sturen!

Stuur je ons een mailtje?

Bellen kan natuurlijk ook