Ldesign Media
    Terug naar Blog
    Ontwikkeling

    Van Moodle™ 1.8 naar 5.1: Lessen uit 15 jaar LMS-evolutie

    Luuk Verhoeven

    Luuk Verhoeven

    Lead Developer & Moodle™ Expert

    15 april 2026
    12 min lezen
    Van Moodle™ 1.8 naar 5.1: Lessen uit 15 jaar LMS-evolutie

    Hoe het begon: 1.8 en een platform dat zichzelf nog zocht

    Toen Ldesign Media in 2010 voor het eerst startte met -ontwikkeling, draaiden we op versie 1.8. Het platform was krachtig, maar voelde nog duidelijk ruw aan: sterk admin- en formuliergedreven, en extensies leunden zwaar op vaste entry points en callbacks. Tegelijk was toen al duidelijk modulair opgezet, met -types zoals activity modules, blocks, themes, auth- en enrolment , elk met vaste entry points zoals lib.php. De gebruikelijke pluginstructuur met bestanden als db/install.xml, db/upgrade.php en version.php was er in de praktijk al, al verschilde de precieze verplichting per plugintype en oudere -versie.

    1.8 deed precies wat het beloofde: het was een cursusbeheersysteem, gebouwd door docenten, voor docenten. Het kon quizzen, opdrachten, forums en cijferboeken aan. Voor Dentallect, een van onze eerste grote klanten, was dat genoeg. Ze hadden een platform nodig waar tandheelkundige professionals na- en bijscholing konden afronden en waar die voltooiingen werden bijgehouden. 1.8 leverde dat, ook al vergde het er professioneel en zakelijk uit laten zien heel wat maatwerk-PHP dat we vandaag de dag niet meer zouden schrijven.

    Wat we al snel leerden: de -community was het echte product. De forums op moodle.org waren al actief, de tracker vulde zich al met bugs en feature-aanvragen, en rond het project van Martin Dougiamas was een wereldwijde groep ontwikkelaars, docenten en vertalers ontstaan die vanuit eigen beweging bijdroegen omdat ze oprecht geloofden in open-source onderwijs.

    2.0: de grote backend-herschrijving (2010-2011)

    2.0, uitgebracht op 24 november 2010, voelde terecht als een breuklijn. Die release bracht grote veranderingen in repository support, de file picker, file metadata en opslag, web services door de hele codebase, cohorts, course completion en prerequisites, conditional activities, en een volledig herschreven backup/restore-laag. Voor teams met veel maatwerk voelde dat in de praktijk als een bijna nieuw platform.

    Voor -ontwikkelaars was dit keihard. Elke die we hadden gebouwd of aangepast, en in 2010 hadden we er al tientallen, moest worden herschreven. De hook-namen veranderden, de functiehandtekeningen veranderden, de conventies rond bestandsafhandeling en output veranderden. Wat 2.0 níet deed, is het -installatie- en upgrademechanisme vanaf nul uitvinden. Het XMLDB-gebaseerde model met install.xml en upgrade.php bestond al sinds 1.7, en ook het rollen- en capability-model bestond al vóór 2.0. bleef daarna nog lang sterk transaction-script-, lib.php- en callback-gedreven; het moderne Events kwam pas in 2.6.

    De installaties met zwaar maatwerk, vooral die met aangepaste code die diep in het cijferboek haakte, vereisten bijna een complete herbouw van de maatwerkcode. De les was pijnlijk maar blijvend: koppel je bedrijfslogica nooit aan -internals. Bouw op de stabiele 's, en waar geen stabiele bestaat, isoleer de koppeling op één plek zodat die makkelijk te vervangen is.

    De 2.0-architectuur, ondanks alle pijn van de migratie, was echt beter. De bestandsAPI betekende dat we eindelijk konden bouwen die bestandsbijlagen betrouwbaar afhandelden. Het capability-systeem kreeg een veel volwassener uitwerking. En de backup/restore-laag werd voor het eerst een fundament waar je serieus op kon bouwen.

    De 2.x-jaren: ritme, stabilisatie en een eerste frontend-kantelpunt (2011-2015)

    In de jaren na 2.0 kreeg een voorspelbaarder release-ritme. Officieel hanteert voor major releases een cyclus van zes maanden, traditioneel in april en oktober. Dat ritme gaf het ecosysteem rust: , documentatie en upgradeverwachtingen werden minder grillig. De -directory op moodle.org werd echt bruikbaar, codestandaarden werden opgeschreven en de ontwikkelaarsdocumentatie verbeterde zichtbaar.

    Voor ons was dit een productieve periode. We bouwden serieuze maatwerk- voor opleidingsorganisaties met specifieke eisen rond certificaatbeheer die geen kant-en-klare kon invullen. We bouwden een maatwerk-rapportplugin die voltooiingsdata over meerdere cursussen bevroeg en PDF-certificaten genereerde met TCPDF. Het werkte, het was onderhoudbaar, en het upgraden door 2.2, 2.3, 2.4 was eenvoudig omdat de 's waarop we steunden stabiel bleven.

    Voor frontend-ontwikkeling is vooral 2.9 een belangrijker kantelpunt dan vaak wordt gedacht. Vanaf 2.9 werden templates de voorkeursroute voor HTML-output in plaats van HTML opbouwen in PHP, en ondersteunde AMD JavaScript-modules. De 3.x-serie maakte die aanpak vervolgens dominant, maar ze begon dus niet pas halverwege 3.x.

    De 2.x-periode leerde ons ook over het governance-model van . Met governance bedoelen we: wie beslist wat er wel en niet in core terechtkomt, via welke spelregels, en hoe de community daarin wordt gehoord. In de praktijk werkt dat zo: HQ in Perth is eindverantwoordelijk voor de roadmap, beslist over breaking changes en keurt core-bijdragen uiteindelijk goed of af. Voorstellen en bugs lopen openbaar via de tracker (tracker.moodle.org), inhoudelijke discussie gebeurt op de forums van moodle.org, en code-bijdragen komen binnen als patches met peer review voordat ze in een release-branch landen. Het model is niet altijd snel, omstreden features kunnen jarenlang in discussie blijven, maar het levert een platform op met een coherente visie en duidelijke verantwoordelijkheid. Als we het niet eens waren met beslissingen (en dat was soms het geval), leerden we constructief via de tracker te engageren in plaats van er omheen te patchen.

    3.2-3.11: Boost, Mustache, privacy en een volwassen 3.x-lijn

    De echte Bootstrap-omslag hoort niet bij 3.0, maar bij 3.2, uitgebracht op 5 december 2016. In de officiële release notes van 3.2 staat de nieuwe core-theme Boost op basis van Bootstrap 4 expliciet genoemd, samen met block- en navigatiewijzigingen. Dat is historisch gezien het juiste moment om de grote theming- en frontendverschuiving te plaatsen.

    Voor zorgklanten die mobiel toegankelijke trainingen begonnen te vereisen voor klinisch personeel, was dit een doorbraak. Een verpleegkundige kon nu een compliancemodule afronden op een tablet tijdens een pauze. Maar de thema-architectuurwijziging was wederom een migratiehoofdzeer. Maatwerk-thema's gebouwd voor 2.x en vroege 3.x moesten herschreven worden voor Bootstrap. We hadden thema's gebouwd voor meerdere klanten die strak gekoppeld waren aan de oude opmaakstructuur. Elk ervan vereiste een complete front-end herbouw.

    Samen met Boost werd Mustache de voorkeursroute om HTML vanuit een te renderen. Die aanpak startte al in 2.9, maar vanaf 3.2 werd hij duidelijk de standaard. Mustache-templates zijn testbaar, scheiden verantwoordelijkheden correct, en maken het makkelijker voor thema-ontwikkelaars om -output te overschrijven zonder -PHP aan te raken. We herbouwden onze output-laag voor een groot deel van onze plugincatalogus in 2016 en 2017.

    De webservices-, die in rudimentaire vorm al bestond vanaf 2.0, rijpte sterk door de 3.x-serie. Tegen 3.5 was hij robuust genoeg om echte mobiele applicaties te ondersteunen. Voor Dentallect, een platform voor nascholing in de tandheelkunde dat we in deze periode hielpen bouwen, liet de webservices- ons een companion-app bouwen die cursusvoortgang terugsynchroniseerde naar . De REST- was goed gedocumenteerd en betrouwbaar. Die ervaring gaf ons vertrouwen in de externe van als basis voor integraties.

    Een andere harde mijlpaal in deze periode is 3.5. Daar werd vastgelegd dat de Privacy moeten implementeren om voor GDPR/AVG correct te rapporteren, exporteren en verwijderen welke persoonsgegevens ze opslaan. Dat is een veel preciezere kapstok dan alleen zeggen dat "privacy belangrijker werd in 3.x". We hadden meerdere Nederlandse klanten, met name zorginstellingen, voor wie inzageverzoeken voorheen een handmatige nachtmerrie waren. De Privacy maakte dat automatiseerbaar.

    3.11 werd uitgebracht op 17 mei 2021 en is inmiddels unsupported: er komen geen fixes voor securityrisico's meer uit. Als historische eindfase van de 3.x-lijn is 3.11 relevant, maar technisch is het nu echt een oude versie.

    4.0: de echte UX-reset (2022)

    4.0, uitgebracht op 19 april 2022, was de grootste zichtbare UX-reset sinds 2.0. Die release bracht primary, secondary en tertiary navigation, een nieuwe course index, page drawers, en een verdere verschuiving van course rendering naar output components en Mustache-templates. Voor - en formatbouwers was dat een serieuze wijziging, juist omdat veel course-output formeel in een nieuwere renderlaag terechtkwam.

    Voor gebruikers was dit lang achterstallig en breed positief. De oude -interface was jarenlang een drempel voor adoptie, klanten klaagden dat cursisten het verwarrend vonden. 4.0 loste veel van die klachten op.

    Voor -ontwikkelaars was het alweer een migratie. Navigatieknooppuntafhandeling veranderde opnieuw. Blokplugins moesten worden nagelopen omdat blokken voortaan in de rechter blok-drawer landden, met aangepaste regio's en zonder de oude dock. Thema's gebouwd voor 3.x hadden updates nodig, met Boost als de officiële core-basis voor maatwerk-thema's.

    Voor quiz- en vraagplugins was 4.0 ook een echt omslagpunt. De release introduceerde het nieuwe qbank- type en question versions, werkte mod_quiz bij voor die nieuwe vragenbank, integreerde BigBlueButton in core , en benoemde accessibility improvements expliciet als onderdeel van de release. Voor klanten in de zorg- en onderwijssector waren de toegankelijkheidsverbeteringen betekenisvol. Zorginstellingen die moesten voldoen aan de webtoegankelijkheidswetgeving waardeerden het feit dat ze geen toegankelijkheidspatches meer in hun maatwerk- hoefden te bouwen.

    4.1-4.5: stabilisatie, LTS en AI in core

    4.1 was de LTS-release van die generatie en verhoogde de minimum-PHP-versie naar 7.4. Daarna is 4.5 de nieuwe LTS geworden. Volgens het officiële release-overzicht is 4.5 de meest recente LTS, met 5.3 als volgende LTS. 4.5 werd uitgebracht op 7 oktober 2024 en vereist minimaal PHP 8.1.

    Belangrijk: het AI-verhaal begint niet pas bij 5.1. In 4.5 werd al een AI-subsystem aan toegevoegd, inclusief placements en providerplugins zoals Open AI en Azure AI. 5.x bouwt daarop voort, maar 4.5 is de echte start van AI in core .

    De organisatorische verschuiving in deze periode was ook opmerkelijk. HQ rebrandde het platform als " " om het te onderscheiden van hun groeiende productportfolio ( Workplace, MoodleNet, MoodleCloud). Als specialistisch bureau verduidelijkte dit het landschap. Als klanten vroegen naar "," konden we nu wijzen naar een specifiek product met een duidelijke routekaart.

    5.0 en 5.1: modern PHP, routing en verdere AI-uitbouw

    5.0 verscheen op 14 april 2025 en 5.1 op 6 oktober 2025. Beide vereisen minimaal 4.2.3 als bronversie en minimaal PHP 8.2. Voor elke die op PHP 7-syntaxis was blijven hangen, vereiste dit updates: getypte eigenschappen, benoemde argumenten, enum-ondersteuning, alleen-lezen eigenschappen, intersectietypes. Modern PHP is echt expressiever en veiliger dan PHP 7, maar het upgradepad vereist aandacht.

    5.1 bracht daarnaast een nieuwe /public-directorystructuur en een nieuwe routing engine. Op AI-vlak breidde 5.0 de 4.5-basis uit met onder meer een Ollama-provider, meerdere provider instances en adminrapportage voor AI-gebruik, terwijl 5.1 daar course- en activity-level access controls, betere placement-foutmeldingen en een DeepSeek-provider aan toevoegde. 5.1 bracht bovendien een vernieuwde activity chooser en een centralere course overview page.

    Per vandaag is de actuele situatie dus: 4.5 is de huidige LTS/security-lijn, 5.0 en 5.1 zijn current stable, 5.2 staat nog als toekomstige release gepland, en 5.3 is aangewezen als volgende LTS.

    Wat we leerden over langlevende

    Als ervaren Moodle plugin ontwikkelaar leert driehonderd over vijftien jaar je patronen. Dit is wat we weten:

    Bouw op de stabiele plugin-API, niet op internals. Core-functies met een underscore-prefix, interne databasetabellen die niet worden beheerd via het XMLDB-schema, renderer-methoden die niet in de gedocumenteerde zitten, die veranderen allemaal tussen versies. De stabiele - verandert langzamer en is gedocumenteerd. Gebruik die.

    Wees eigenaar van je databaseschema. Definieer al je tabellen via het XMLDB-schema in db/install.xml en db/upgrade.php. Maak nooit tabellen aan door raw SQL vanuit -code uit te voeren. Het upgradesysteem bestaat precies om schemamigraties over -versies heen af te handelen.

    Test op de volgende versie voordat die uitkomt. publiceert release candidates. Je -testsuites draaien op RC-builds pikt breaking changes op voordat ze de productie raken. We hebben een CI-pipeline gebouwd die draait op de huidige stabiele versie, huidige LTS en huidige RC. Dat heeft veel problemen vroeg gevangen.

    Houd je JavaScript modulair. Elke keer dat we AMD-modules hadden met duidelijke inputs en outputs, verliepen upgrades soepel. Elke keer dat we inline JavaScript hadden verstrengeld met PHP-stringoutput, waren upgrades pijnlijk.

    Respecteer de Mustache-grens. Plugin-PHP moet datamatrices klaarmaken. Mustache-templates moeten HTML renderen. Als je die grens vervaagt, bedrijfslogica in templates zetten, of HTML in PHP genereren, lijdt het onderhoud direct en stapelt upgradecomplex zich op.

    De menselijke kant: community en governance

    De -community is één van de meest consistente positieve krachten geweest over vijftien jaar. De moodle.org-forums, de ontwikkelaarschat, de jaarlijkse MoodleMoot-conferenties, dit zijn plekken waar echte kennisdeling plaatsvindt. We hebben code bijgedragen aan de community, we hebben bijdragen van community-leden ontvangen die onze eigen verbeterden, en we hebben geleerd van andere ontwikkelaars die door dezelfde problemen worstelden.

    Het governance-model, HQ-gestuurd met community-input via de tracker, heeft zijn frustraties. Beslissingscycli kunnen traag zijn. Prioriteiten komen niet altijd overeen met wat bureaus in het veld nodig hebben. Maar het model levert een platform op met een coherente visie en een oprechte toewijding aan achterwaartse compatibiliteit binnen grote versies.

    De jaarlijkse MoodleMoot NL-evenementen gaven ons directe verbindingen met de Nederlandse -community. Die relaties tellen, als een klant een ongewoon probleem heeft, weten wie je moet bellen in het bredere ecosysteem is onderdeel van goede dienstverlening.

    Advies voor organisaties die nog op oudere versies draaien

    Als je dit leest terwijl je 3.9 of 3.11 draait, zit je aantoonbaar buiten supported territory. Voor 3.9 eindigden de securityfixes op 11 december 2023; 3.11 krijgt überhaupt geen fixes voor securityrisico's meer. De kloof met actuele -versies is niet alleen cosmetisch, maar ook operationeel en security-gerelateerd.

    Belangrijker nog: het actuele upgradepad is gefaseerd. 4.5 vereist minimaal 4.1.2 als bronversie, en 5.0 en 5.1 vereisen minimaal 4.2.3. Vanuit 3.9 of 3.11 kun je dus niet meer zomaar rechtstreeks naar iedere moderne lijn springen; minstens één tussenstap is onvermijdelijk.

    Onze aanbeveling: begin met een audit. Catalogiseer elke aanpassing, maatwerk-, thema-overschrijvingen, core-patches, third-party . Bepaal voor elk de onderhoudsstatus. Controleer voor third-party of er 4.x/5.x-compatibele releases zijn. Schat voor maatwerkcode de updateinspanning in. Plan daarna een gefaseerde upgrade: eerst testomgeving, dan staging, dan productie, met voor elke fase een terugrolplan.

    De organisaties die het moeilijkst upgraden zijn de organisaties die technische schulden hebben laten ophopen terwijl ze de upgradebeslissing uitstelden. Elk jaar op een oude versie vergroot die schuld.

    Vooruitkijken

    De kern van het verhaal blijft overeind: is in vijftien jaar veranderd van een ruw, PHP-zwaar cursusplatform naar een volwassen, modulair . De historische bakens liggen net iets anders dan vaak gedacht: 2.0 was de grote backend-breuk, 2.9 en 3.2 vormden het frontend-keerpunt, 4.0 was de UX-reset, 4.5 bracht AI in core , en 5.x zet de lijn door met PHP 8.2+, routing en verdere AI-integratie.

    We zijn er samen mee herbouwd. Elke grote versie heeft ons laten groeien, als PHP-ontwikkelaars, als front-end-engineers, als architecten van leerplatforms. De migratie van 1.8 naar 2.0 dwong ons goede -architectuur te leren. Het 2.9/3.2-tijdperk dwong ons moderne JavaScript en templating te leren. De 4.0 UX-overhaul dwong ons te investeren in UX-denken. 5.x duwt ons dieper in modern PHP, routing en AI-ondersteunde ontwikkeling.

    Dat is, denken we, precies het soort uitdaging voor een team dat dit ook de komende vijftien jaar wil blijven doen.

    Luuk Verhoeven

    Geschreven door

    Luuk Verhoeven

    Lead Developer & Moodle™ Expert bij Ldesign Media

    Software engineer en architect gespecialiseerd in Moodle™-pluginontwikkeling, systeemintegraties en schaalbare LMS-platforms. Bouwt maatwerk oplossingen sinds 2010.

    Gratis: de Moodle™ upgrade-checklist

    De checklist in 26 stappen die wij gebruiken bij upgrades voor klanten: van beveiligings- en end-of-life-check tot stagingtests, livegang en nazorg.

    • Voorkom de meest voorkomende upgrade-valkuilen
    • Inclusief plugin-, integratie- en rollback-checks
    • Praktische tips uit 16+ jaar Moodle™-ervaring

    U ontvangt per e-mail de link naar de checklist, verder niets. Geen nieuwsbrief, geen spam.

    Beoordeling
    5.0

    Gebaseerd op 20 Google-reviews

    Karin Groen

    Karin Groen

    2025

    "Vanuit De Schoolschrijver werk ik heel fijn samen met LDesign. Het resultaat was een mooi stuk maatwerk in onze moodle-omgeving. Vincent is ontzettend secuur, denkt heel goed en actief mee en de communicatie is erg prettig. Aanrader!"

    Arnout Vree

    Arnout Vree

    2023

    "Met Ldesign werkt het altijd fijn samen. Heldere afspraken, korte lijntjes en de kwaliteit van de Moodle plugins is goed."

    Gemma Lesterhuis

    Gemma Lesterhuis

    2023

    "LT&C heeft al jaren een prettige samenwerking met Ldesign Media voor het ontwikkelen en onderhouden van Moodle LMS plugins. Wij zijn erg blij met hun expertise en vakkennis."

    Joris Even

    Joris Even

    2023

    "We werken vanuit JE Ontwikkeling nu een aantal jaren samen met Ldesign. De service uitstekend en de samenwerking erg prettig. Kwaliteit van het programmeerwerk is hoog en in co-creatie zijn we tot prachtige producten gekomen. Dank!"

    Frans Levels

    Frans Levels

    2020

    "Perfect werk tbv onze website."

    Lilian Suijkerbuijk

    Lilian Suijkerbuijk

    2020

    "Erg tevreden over onze website en de snelle acties bij vragen of uit te voeren wijzigingen!"

    Paul Storms

    Paul Storms

    2019

    "Goede aanpassing aan een Moodle plugin gemaakt. Heldere afspraken."

    Merlijn Vanhecke

    Merlijn Vanhecke

    2019

    "Nice service, good knowhow."

    L. Ottink

    L. Ottink

    2019

    "Ldesign zorgt voor het onderhoud en de optimalisatie van onze Moodle omgeving. Ik ben erg tevreden over de samenwerking met Luuk. Hij denkt goed met ons mee en biedt passende oplossingen. Door zijn snelle responstijd en flexibiliteit zorgt hij ervoor dat wij volledig ontzorgd worden op dit gebied."

    L. Arendsen

    L. Arendsen

    2019

    "Ldesign is een heel prettig bedrijf om mee samen te werken: meedenkend, snel, prima resultaten en duidelijke afspraken. Al vele jaren goed werk geleverd m.b.t. onze website."

    Sanne van Hoof

    Sanne van Hoof

    2019

    "Super tevreden: altijd snel reactie, snel een oplossing/resultaat en fijn dat er wordt meegedacht over verbeteringen!"

    Dexo Media

    Dexo Media

    2019

    "Super goede service, erg klantvriendelijk. Erg fijn om mee samen te werken."

    Guus Mul

    Guus Mul

    2018

    "Luuk is onze technische steun en toeverlaat. Zeer kundig en vlot in het oplossen van alle problemen in relatie tot Moodle. Een aanrader!!"

    Bas H.

    Bas H.

    2018

    "Een zeer professionele, bekwame en gedreven programmeur. Kan op alle niveau's meedenken en ontwikkelen."

    Academie Tandartsenpraktijk

    Academie Tandartsenpraktijk

    2018

    "Snel, accuraat, meedenkend, op de hoogte van de laatste trends, een aanrader. Of te wel een echte professional."

    Dental Lect

    Dental Lect

    2018

    "Ldesign is een kundig en uiterst professioneel bedrijf. De responstijden zijn kort en ze hebben nog nooit een product opgeleverd waarover wij teleurgesteld waren!"

    Josien Drijfhout

    Josien Drijfhout

    2017

    "Vriendelijke en eerlijk advies. Daarnaast houdt zich aan de gemaakte afspraken en levert kwaliteit in overleg met de klant."

    Richard Den Haag

    Richard Den Haag

    2017

    "Luuk is een vakman zoals ik niet eerder ben tegen gekomen. Een geweldig meedenkend mens. Ik raad Luuk zeer zeker aan als het gaat om alles wat met code te maken heeft."

    Unhooked Kite

    Unhooked Kite

    2017

    "Goede samenwerking, en geeft goede support!"

    Familie Vrolijk

    Familie Vrolijk

    2017

    "Ldesign is een trouwe partner voor onze zakelijke website. Accuraat, meedenkend en behulpzaam. Topbedrijf!"

    Waar kunnen we u mee helpen?

    Of u nu een custom plugin, een complexe integratie of strategisch advies nodig heeft,wij staan klaar om te praten. Geen verkooppraatje. Gewoon een direct gesprek met het team dat het werk doet.

    Openingstijden

    Ma - Vr: 9:00 - 17:00

    Reactietijd

    Doorgaans binnen 24 uur

    Directe toegang tot developers

    Geen accountmanagers of verkopers,u spreekt direct met het team dat uw oplossing bouwt.

    Neem contact met ons op

    Uw gegevens worden vertrouwelijk behandeld en uitsluitend gebruikt om uw aanvraag te beantwoorden. Geen spam, geen nieuwsbrieven.

    5.0 Google-beoordeling · 16+ jaar ervaring · 300+ Moodle™-plugins

    We reageren binnen 24 uur op werkdagen.

    FAQ

    Veelgestelde vragen over Moodle™-versies en upgrades

    Veelvoorkomende vragen over de Moodle™-releasetijdlijn, het actuele upgradepad vanaf oudere versies en wanneer AI in core landde.