Archief - PHP - Smarty Templates

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

adrianhates

Legacy Member
Beste developers,

Ik lees her en der dat het gebruik van templates met behulp van Smarty in PHP nogal "best-practice" is..

Wat zijn jullie meningen hierover? Gebruiken jullie ook bvb Smarty?
http://www.smarty.net/

Ik heb eens gekeken naar het voorbeeld , " Guestbook", dat op de website staat.
http://www.smarty.net/sampleapp/sampleapp_p1.php

Als ik zo kijk naar bvb de templates:

Code:
{* Smarty *}

<table border="0" bgcolor="#eeeeee" width="300">
    <tr>
        <th colspan="2" bgcolor="#d1d1d1">Guestbook Entries (<a href="{$SCRIPT_NAME}?action=add">add</a>)</th>
    </tr>
    {foreach from=$data item="entry"}
        <tr>
            <td>{$entry.Name|escape}</td>        
            <td align="right">{$entry.EntryDate|date_format:"%e %b, %Y %H:%M:%S"}</td>        
        </tr>
        <tr>
            <td colspan="2" bgcolor="#dedede">{$entry.Comment|escape}</td>
        </tr>
    {foreachelse}
        <tr>
            <td colspan="2">No records</td>
        </tr>
    {/foreach}
</table>

Wat maakt dit zo goed? Ik snap het echt niet. Je kan ook net hetzelfde doen met andere technieken waarbij je al die template shizzle niet nodig hebt..

Please advice and discuss!

VirusPhoenix

Legacy Member
Wij gebruiken Smarty in combinatie met php voor ons project aan de hogeschool (Artesis te Antwerpen)

De voordelen persoonlijk vind ik: dat men het Designer gedeelte en de php code strikt kan scheiden waardoor je dus niet continu moet wachten en samenwerken met de coders om je design te integreren in de .php pagina's, maar deze in een '.tpl' kan opslaan en via index kan koppelen.
Nu dit vraagt toch wel een extra inspanning voor het aanleren natuurlijk van de Smarty syntax maar voor grotere projecten zoals deze kan dit zeker en vast positief gebruikt worden.

voor het koppelen van variabelen worden dezen dan met zie hier onder bereikt.
$_templ->assign('navselectZaterdag', 'class="current"');
$_templ->display('zaterdag.tpl');

gekoppeld in dit bv is current een class van css die wordt geactiveerd bij het aanklikken de link

adrianhates

Legacy Member
VirusPhoenix zei:
Wij gebruiken Smarty in combinatie met php voor ons project aan de hogeschool (Artesis te Antwerpen)

De voordelen persoonlijk zijn dat men het Designer gedeelte en de php code strikt kan scheiden waardoor je dus niet continu moet wachten en samenwerken met de coders om je design te integreren in de .php pagina's.
Nu dit vraagt toch wel een extra inspanning voor het aanleren natuurlijk van de Smarty syntax maar voor grotere projecten zoals deze kan dit zeker en vast positief gebruikt worden.

voor het koppelen van variabelen worden dezen dan met zie hier onder bereikt.
$_templ->assign('navselectZaterdag', 'class="current"');
$_templ->display('zaterdag.tpl');

gekoppeld in dit bv is current een class van css die wordt geactiveerd bij het aanklikken de link

Ik begrijp dat allemaal ze. Maar ik ben nog steeds niet overtuigd van de meerwaarde aangezien dat ge dat met andere gewone php technieken ook kunt doen.

GregoryCo

Legacy Member
Wij moeten nu ook werken met smarty, in het begin vond ik da extreem ingewikkeld, maar nu begint da wa te lukken, tis trouwens heeltijd hetzelfde dat je moet doen, directories aanmaken, frontcontroller etc..., meer dan VirusPhoenix kan ik jammer genoeg niet zeggen.

woony

Legacy Member
ik zie er ook niet perse het nut van in hoor...
imo doe het hoe je het liefst werkt...
ik maak tegenwoordig mijn websites vaak met codeigniter, gelijk welke mvc zorgt sowieso voor een goede scheiding van BL en frontend..
ik heb het persoonlijk nog nooit gebruikt die smarty

GregoryCo

Legacy Member
Het belangrijkste doel van smarty is denk ik om html code van php code gescheiden te houden en het zo overzichtelijk te maken.

adrianhates

Legacy Member
GregoryCo zei:
Het belangrijkste doel van smarty is denk ik om html code van php code gescheiden te houden en het zo overzichtelijk te maken.

waarbij je nog een extra syntax krijgt en het nog onduidelijker maakt.. :)

html moet idd gescheiden worden van PHP, maar dat is evengoed in beperkte mate. Alles wordt uiteindelijk maar gestyled met CSS he :). Uiteindelijk kunt ge uw html templates ook in een include steken in een map 'templates' en die ook bvb altijd oproepen in een php for lus.


Het lame ass guestbook voorbeeldje van smarty bewijst ook al dat het een beetje ouwbollig is, niet?

'bgcolor="#d1d1d1" ' arréé komaan :)

memorexxx

Legacy Member
Smarty is de max. Het basis nut is net zoals alle andere template systemen, code scheiden van opmaak... Maar wat smarty zo goed maakt is dat je je eigen elementen kan programeren (smarty functies). Superhandig voor OO te programmeren vind ik...

Iguanatje

Legacy Member
ik gebruik pixaria dat gebruik maakt van smarty templates, zo moet ik me als grafici niet veel aantrekken van de code. Toch vergt het af en toe wat zoekwerk :)
Ik tracht al de hele tijd informatie van men galleries aan te passen, zodat alleen de titel wordt getoond. Misschien iemand een idee?

Drone

Legacy Member
woony zei:
ik zie er ook niet perse het nut van in hoor...
imo doe het hoe je het liefst werkt...
ik maak tegenwoordig mijn websites vaak met codeigniter, gelijk welke mvc zorgt sowieso voor een goede scheiding van BL en frontend..
ik heb het persoonlijk nog nooit gebruikt die smarty

MVC is zeker de moeite. Sinds ik een MVC framework gebruikt is de kwaliteit van mijn code veel verbeterd. Nadat ik mvc wat door had ben ik met unit testing begonnen, wat ik iedereen kan aanraden. Het is ook super gemakkelijk om nieuwe dingen te leren als je vlot testjes kan schrijven.

Huxley

Legacy Member
Dat is handig voor als er een team aan een website werkt.

De webontwikkeleraars/designer maken de HTML (bv van een webshop)
De programmeurs schrijven de PHP, zo kunnen ze allebei makkelijk werken zonder dat ze door 1000 regels code moeten zoeken naar PHP tags.

dJeez

Legacy Member
adrianhates zei:
Ik lees her en der dat het gebruik van templates met behulp van Smarty in PHP nogal "best-practice" is..
Het scheiden van je PHP code (business logic) en je output (presentation logic, dat hoeft niet noodzakelijk html te zijn overigens) is inderdaad best-practice, dat hoeft daarom echter niet noodzakelijk met Smarty te zijn (je kan vb. perfect met verschillende XSLTs gaan werken om diverse outputs te genereren op basis van gestandaardiseerde XML output).

Smarty werd misschien wel iets meer naar voor geschoven omdat het een PHP subproject was (dat is nu niet langer het geval). Maar als je naar het Zend framework kijkt, dan merk je direct dat daar zelfs geen standaard support voor Smarty in voorzien is hoewel het ook MVC poneert als de te volgen methodologie (ttz, je kan het ook perfect anders aanpakken als je dat wil, zo flexibel is het Zend framework wel :p).

Unrach

Legacy Member
Ik had hier nog niet van gehoord. Dus wat dit eigenlijk doet is er voor zorgen dat je makkelijk je template kan veranderen? Dus je kan het met "grote lijnen" vergelijken met ne CMS zoals joomla of WP waarbij je een andere template met 1 click hebt veranderd?

Disa

Legacy Member
Wij gaan zelf nog een stap verder.
Onze frontend is volledig gescheiden van onze backend. Dit wil zeggen dat we al onze data exposen via REST api's (pure JSON, XML, ...)
Die wordt opgevraagd in de frontend door simpele ajax calls. Die maakt dan op zijn beurt gebruik van TrimPath (~Smarty in JS.)
Een mooi voordeel van dit systeem is dat het vrij straightforward is om meerdere devices te supporten. De backend blijft gelijk, maar we veranderen gewoon wat html. bvb:
* Normal desktop browsers
* Mobile web browsers
* Apps
* ..

Er is geen enkele reden waarom je backend (php, Java, Ruby.. ) nog met html zou moeten mengen IMHO.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan