SMARTY is
zondermeer een van de beste “template”-systemen die we gebruiken samen
met PHP. Eenvoudig in gebruik en met een vlakke leercurve.

Tot nu toe,
tot PHP7, was er geen enkel probleem. Geen enkele update van PHP of SMARTY
maakte het noodzakelijk om de SMARTY strategy/templates aan te passen.

Tot nu, de
vorige versies van SMARTY zijn niet meer compatibel met PHP7 en de laatste
SMARTY versie , alhoewel volledig object georiënteerd, is niet compatibel meer
met de “__autoload” strategie.

SMARTY heeft er voor gekozen om compatibel te zijn met PHP7, maar gebruikt een nieuwe file
en folder structuur.

Ons resten
er dus 2 mogelijke oplossingen:

1 –> SMARTY aanpassen

Deze
strategie is de meest complexe en gaat volledig in tegen het “encapsulatie”
principe.

2 –> Scripts aanpassen

Deze
strategie blijkt de meest eenvoudige, maar betekent wel dat we geen gebruik meer
kunnen maken van de “__autoload”
functie.

In de
opleiding Web-ontwikkelaar bij ENCORA kiezen we voor oplossing 2.

We
verwijderen de “__autoload” functie en vervangen deze door includes/requires
voor elke gebruikte klasse.

We includen
een nieuw stukje code (mySmarty.inc.php) waar we het $_smarty object instantiëren
en de verschillende folders (templates, compile, cache, config) linken.

Verder
gebruiken we een nieuwe folder “smarty” waar alles samengebracht wordt.

Je kan de “nieuwe”
basis structuur via deze link in een zipped file downloaden

meer informatie over de file en folder structuur vind je in
de figuren hieronder.