Joomla 3.8 komt er aan

Joomla 3.8 zit eraan te komen. Half september wordt de stable release verwacht en inmiddels is de ontwikkeling aangekomen op beta4.

Je kunt op een testomgeving alvast beta 4 testen. Je kunt Joomla installeren op een testomgeving en vervolgens in het Joomla update component naar de opties gaan. Daar kun je het update kanaal op "testen" zetten. Je kunt dan updaten naar Joomla 3.8 beta4.

Doe dit uiteraard niet op je productie site.

Er zijn twee belangrijke nieuwe zaken te melden die je in Joomla 3.8 kunt verwachten:

1. De nieuwe router

Deze nieuwe router zou eerst al in Joomla 3.7 komen, maar is uiteindelijk uitgesteld naar Joomla 3.8. Ik was een tijdje geleden dus al te snel met dit artikel: https://netspecialist.nl/joomla/474-joomla-3-7-nieuwe-router.

Met deze nieuwe router wordt het systeem om url's te genereren gewijzigd. Een groot voordeel van de nieuwe router, is dat je artikel ID's uit url's kunt verwijderen.

Dus ipv www.jouwsite.nl/categorie/44-artikel kan het dan www.jouwsite/categorie/artikel worden.

In de nieuwe router heb je drie smaken:

1. De oude router gebruiken (er wordt dus niets gewijzigd)

Dit is de standaard instelling bij nieuwe installaties en de aanbevolen instelling voor bestaande websites. Zou je al de nieuwe router gebruiken, dan kan het zijn dat sommige url's wijzigen, wat weer voor 404 fouten kan zorgen.

2. De nieuwe router gebruiken

Meestal zal dit leiden tot dezelfde url's op je website, alleen dan op een andere manier gegenereerd. Echter, het kan voorkomen dat er toch wijzigingen in de url's ontstaan. Goed opletten dus.

3. De nieuwe router gebruiken zonder artikel ID's

Bij deze optie krijg je dus url's zonder die vermaledijde artikel ID's. Op zich de mooiste optie, maar je hebt dan wel wat werk te doen ten aanzien van het redirecten.

2. Joomla 4 compatibility

In Joomla 3.8 zullen er voorbereidingen worden getroffen voor Joomla 4. In Joomla 4 zal er ondersteuning worden toegevoegd voor namespaced PHP code en dit zal ook veel toegepast worden. Maar wat is nu namespaced PHP ?

Ik zal dit proberen uit te leggen met een simpel voorbeeld. Stel ik schrijf een php programma. Dit programma zorgt er voor dat mijn voornaam getoond wordt. Zo'n programma zou er als volgt kunnen uitzien:

<?php
function name() {
echo "Mindert";
}
name(); // de functie name uitvoeren
?>

In deze code zie je dat ik een functie met de naam "name" aanmaak. De code die in deze functie uitgevoerd wordt, is het tonen van mijn naam (echo mindert). Vervolgens wordt via "name();" deze code uitgevoerd en mijn naam getoond.

Uiteraard kan het veel simpeler, maar ik doe het even zo om het voorbeeld van namespaces duidelijk te maken.

Na verloop van tijd wil ik een verbetering in mijn programma doorvoeren, ik wil dat behalve mijn voornaam ook mijn achternaam getoond wordt. Ik moet dus mijn programma aanpassen. Ik zou er zoiets van kunnen maken:

<?php
function name() {
echo "Mindert";
}
name(); // de functie name uitvoeren

function name() {
echo "Aardema";
}
name(); // de functie name uitvoeren
?>

Echter, ik gebruik nu twee keer de functienaam "name". Zowel voor het tonen van mijn voornaam als voor het tonen van mijn achternaam. Twee keer dezelfde functiebenaming gebruiken, dat kan niet binnen php. Ik moet dus voor elke functie een unieke naam verzinnen.

Dit zou wat efficiënter kunnen, want ik toon in beide gevallen een naam. Of het nu een voornaam is of een achternaam, het is en blijft een naam. Dus de functienaam "name" is in beide gevallen logisch.

Door nu gebruik te gaan maken van namespaces, kan ik binnen één programma meerdere keren dezelfde functienaam gebruiken, mits ik ze maar in hun eigen namespace zet. De code van mijn programma zou er dan zo uitzien:

<?php

namespace voornaam;
function name() {
echo "Mindert";
}
name(); // de functie name uitvoeren

namespace achternaam;
function name() {
echo "Aardema";
}
name(); // de functie name uitvoeren

?>

Ik kan nu meerdere keren de functienaam "name gebruiken, mits ze maar in hun eigen namespace zitten.

Mijn voorbeeld is wat onzinnig, maar je kunt je voorstellen dat bij complexe php code het veel efficiënter is om namespaces te gebruiken, zodat je meer eenduidigheid kunt krijgen in benamingen voor functies, classes etc.

In Joomla 4 komt er dus ondersteuning voor namespaced code voor php classes. In Joomla 3.8 worden daarvoor al heel wat scripts in de map libraries hierop aangepast. Een groot deel van de bestanden in de mappen libraries/cms en libraries/legacy zal worden aangepast en worden verplaatst naar de map libraries/src.

Deze aanpassings- en verplaatsingsactie zal er voor zorgen dat het update proces naar Joomla 3.8 wat intensiever zal zijn (maw wat langer kan duren en wat meer van de server zal vergen) dan normaal.

Wat merk je van deze toevoeging voor ondersteuning van namespaces als gebruiker, nou eigenlijk niets. Deze wijziging is vooral van belang voor joomla (extensie) ontwikkelaars.

Meer weten over Joomla 3.8

Dan raad ik je aan de pagina over Joomla 3.8 op de Joomla developers website te bezoeken.

You have no rights to post comments