[PHP] Smarty VS Template Light - welke is beter?

Pagina: 1
Acties:
  • 1.962 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • markg85
  • Registratie: Februari 2003
  • Laatst online: 14-08 20:01
Hey,

Ik ben al een aantal maanden bezig met het modden van het file database script: paFileDB (www.phparena.net) en dat gebruikt sinds versie 3.5.x de Smarty template engine.

Ik vind alleen dat smarty zo ontzettend vertragend is.. (smarty neemt een groot deel in van de tijd dat de pagina laad... sterker nog.. smarty samen met de database class nemen ongeveer 90% van de pageload in) dus ik ben opzoek gegaan naar een smarty alternatief en zocht in eerste instantie op "Smarty Lite" of "Lite Smarty".. er bleek wel iemand/een groet geweest te zijn die een lite versie maakte van smarty, maar de laatste update daarvan is inmiddels al weer een aantal jaren oud. dus verder gezocht naar iets wat nog wel door ontwikkeld wordt en wat toch ook wat lichter is dan smarty, maar toch wel dezelfde mogelijkheden heeft.

Template Light lijkt aan die eis te voldoen.. ze beweren zelf dat ze sneller zijn dan smarty en minder geheugen innemen.. ook heeft die template engine vrijwel dezelfde functies als smarty en meer!! en het hele script zelf is nog kleiner ook.. kortom het lijkt dus allemaal erg mooi.. misschien te mooi om waar te zijn?

Dus mijn vraag aan jullie:
1. Heeft er hier iemand ervaring met smarty en template lite en welke van de 2 beviel het beste
2. is template lite echt sneller dan smarty?
3. of hebben jullie een andere aanrader die min of meer hetzelfde kan als smarty en veel sneller is?
4. en heeft het zin om alles van smarty om te bouwen naar een andere snellere template engine?

een absolute must have in de template engine is de mogelijkheid om een foreach loop uit te voeren.. of iniedergeval door een array te lopen.

Alvast bedankt.

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Ik heb wel eens gehoord van een goede template engine, die noemen ze... php.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • markg85
  • Registratie: Februari 2003
  • Laatst online: 14-08 20:01
Grijze Vos schreef op maandag 20 november 2006 @ 00:25:
Ik heb wel eens gehoord van een goede template engine, die noemen ze... php.
.. ja php ja.. dan kan je overal door je html code de php tags plaatsen.. kan wel, maar staat niet mooi en is niet handig te bewerken (vind ik) tenzij er een andere manier is waar ik (nog) niets van weet..??

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

$title = 'blaat';
$header = 'paginatitel';
$content = 'een heel verhaal';

?>
<html>
  <head>
    <title><?=$title;?></title>
  </head>
  <body>
    <h1><?=$header;?></h1>
    <p><?=$content;?></p>
  </body>
</html>

;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Av3ng3rtje
  • Registratie: December 2002
  • Laatst online: 18-08 10:15
Of je maakt zelf een simpel classje waar in je bij houdt welke waarde vervangen moeten worden en dit bestand in laadt , de waarde vervangt en weer returnt naarde gebruiker.

Acties:
  • 0 Henk 'm!

  • cverkooyen
  • Registratie: Juli 2002
  • Laatst online: 17:37
Ik heb Template Power een x gebruikt en die beviel wel. Nu zet ik de layout gewoon in functies.

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Grijze Vos schreef op maandag 20 november 2006 @ 00:25:
Ik heb wel eens gehoord van een goede template engine, die noemen ze... php.
Je kent Smarty niet dus ;)
Die "compiled" de templates (die door non-programmeurs relatief eenvoudig te bewerken zijn zonder de boel te slopen) naar normale PHP files.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Av3ng3rtje schreef op maandag 20 november 2006 @ 08:28:
Of je maakt zelf een simpel classje waar in je bij houdt welke waarde vervangen moeten worden en dit bestand in laadt , de waarde vervangt en weer returnt naarde gebruiker.
Dat is de meest zinloze manier van templates parsen ooit. Template engines als Smarty bieden nog op zijn minst ondersteuning voor control structures zoals loops en dergelijke, iets wat vrij essentiëel is voor vele dingen zoals lijsten en nieuwberichten en dergelijke herhalende patronen. Dat is met zo'n zelfgeschreven klasse ook nog wel te doen, maar dan kun je al snel beter een beproefde klasse zoals Smarty nemen.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • baggah
  • Registratie: December 2000
  • Laatst online: 11:58
Gebruik php-templates welke van een compiled php module gebruik maakt om templates te parsen.
Is veel sneller dan smarty en ook sneller dan Template Light.

Acties:
  • 0 Henk 'm!

  • wackmaniac
  • Registratie: Februari 2004
  • Laatst online: 19-09 18:02
cverkooyen schreef op maandag 20 november 2006 @ 08:31:
Ik heb Template Power een x gebruikt en die beviel wel. Nu zet ik de layout gewoon in functies.
Werkt inderdaad super. Die knakker die TemplatePower heeft gescheven heeft TemplatePower vergeleken met andere template parsers, waaronder Smarty, en hij was sneller dan alle parsers die hij heeft getest.

Ik ben misschien een beetje bevooroordeeld, want TemplatePower is de eerste template parser die ik gebruik, maar werkt als een tiet!

Ben overigens de andere kant opgegaan; eerste in functies, nu in templates. Is ook makkelijker als je in een keer de lay-out wilt wijzigen, zoals je met sommige pagina's zou willen.

[ Voor 15% gewijzigd door wackmaniac op 20-11-2006 09:20 ]

Read the code, write the code, be the code!


Acties:
  • 0 Henk 'm!

  • simon
  • Registratie: Maart 2002
  • Laatst online: 00:18
TemplatePower is alleen geen echte template engine, meer een replacer, maakt er geen temp files van, en is misschien in minder complexe zaken sneller.

|>


Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Erkens schreef op maandag 20 november 2006 @ 08:34:
[...]

Je kent Smarty niet dus ;)
Die "compiled" de templates (die door non-programmeurs relatief eenvoudig te bewerken zijn zonder de boel te slopen) naar normale PHP files.
Ik ken smarty wel. De syntax van een template engine is niet veel simpeler dan die van PHP. Daarbij is PHP als template engine natuurlijk veel flexibeler dan welke pseudo-code template engine dan ook. Ik zie er echt niet veel voordeel in.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:28
Je hebt een beperkte set code die gebruikt kan worden, dat is een voordeel als je ontwerpers bijvoorbeeld in de templates mogen rommelen. Verder weinig voordeel inderdaad.

Acties:
  • 0 Henk 'm!

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18

djc

-NMe- schreef op maandag 20 november 2006 @ 02:12:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

$title = 'blaat';
$header = 'paginatitel';
$content = 'een heel verhaal';

?>
<html>
  <head>
    <title><?=$title;?></title>
  </head>
  <body>
    <h1><?=$header;?></h1>
    <p><?=$content;?></p>
  </body>
</html>

;)
short_opentags verdienen IMO geen schoonheidsprijs; irritant als je ook XML-bestanden (inclusief XML prolog) op je webserver hebt staan.

Rustacean


Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 13:59

DexterDee

I doubt, therefore I might be

Zonder me (weer) in een heilige oorlog voor of tegen template engines te storten wil ik over Smarty wel wat kwijt. Zonder waardeoordeel over template systems vs. PHP inline HTML dus en welke beter is om te gebruiken.

Smarty is helemaal niet traag. Het gebruikt templates die naar PHP gecompileerd worden. Het wordt hier bedrijfsmatig ingezet voor grote intranet applicaties. Wij gebruiken Zend tooling waarmee je je pagina kunt profilen en verreweg de meeste performance wordt opgeslokt door de databasecalls en andere externe connectivity. Smarty zelf neemt consequent hier zo'n 50 ms in beslag, ongeacht of de pagina groot/complex of klein is (enorme HTML volume outputs daargelaten). Als je verder niks met je pagina zou doen dan zou Smarty een groot gedeelte van je pageload veroorzaken, maar omdat de performance hit zo constant is en vrij klein is dit totaal geen issue. Wij hebben ook heavy load applicaties die met 500+ hits/sec nog steeds een acceptabele performance laten zien met Smarty op een Linux Stack.

Performance hits zul je bij elk framework zien, ook de nieuwere generatie frameworks zoals Prado. Dit vormt zelden tot nooit een probleem. Database Objects of ORMs leveren ook een performance hit op ten opzichte van de native mysql functies, maar de voordelen wegen vrijwel altijd op tegen de nadelen.

Wil je echt snelheidswinst halen in je PHP code (afgezien van je eigen code optimaliseren), dan kun je op een vrij eenvoudige manier een PHP accelerator inzetten. eAccelerator is bijvoorbeeld een opensource accelerator die sourceforge.net draait. Commerciele producten als Zend Optimizer werken ook erg goed. Door intelligent gecompilede PHP code te cachen kun je behoorlijke snelheidswinsten halen, ongeacht welk framework je gebruikt.

Klik hier om mij een DM te sturen • 3245 WP op ZW


Acties:
  • 0 Henk 'm!

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 09:34
DexterDee schreef op maandag 20 november 2006 @ 10:48:
Zonder me (weer) in een heilige oorlog voor of tegen template engines te storten wil ik over Smarty wel wat kwijt. Zonder waardeoordeel over template systems vs. PHP inline HTML dus en welke beter is om te gebruiken.

Smarty is helemaal niet traag.
* FragFrog zich graag hier bij aansluit :)
Ik vind alleen dat smarty zo ontzettend vertragend is.. (smarty neemt een groot deel in van de tijd dat de pagina laad... sterker nog.. smarty samen met de database class nemen ongeveer 90% van de pageload in)
Misschien een hele domme vraag, maar maak je wel gebruik van Smarty's caching mogelijkheden? Als je statische content goed cached zou Smarty netto je applicaties juist sneller moeten maken, niet trager! :)

[ Site ] [ twitch ] [ jijbuis ]


Acties:
  • 0 Henk 'm!

Verwijderd

allemaal geneuzel over performance terwijl het echte voordeel van het gebruik van een template engine nog niet eens benoemd is: "Het scheiden van view logica van het model en de business/control-logica." Het lijkt mij dus ook veel zinvoller om daar over te discussieren.

Acties:
  • 0 Henk 'm!

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Verwijderd schreef op maandag 20 november 2006 @ 12:19:
allemaal geneuzel over performance terwijl het echte voordeel van het gebruik van een template engine nog niet eens benoemd is: "Het scheiden van view logica van het model en de business/control-logica." Het lijkt mij dus ook veel zinvoller om daar over te discussieren.
Inderdaad. Mijns inziens heb je geen speciale pseudo-taal nodig om die scheiding te maken.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


Acties:
  • 0 Henk 'm!

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 09:34
Verwijderd schreef op maandag 20 november 2006 @ 12:19:
allemaal geneuzel over performance terwijl het echte voordeel van het gebruik van een template engine nog niet eens benoemd is: "Het scheiden van view logica van het model en de business/control-logica." Het lijkt mij dus ook veel zinvoller om daar over te discussieren.
Die discussie is al eens gevoerd en ik geloof dat er nooit echt een antwoord uit gekomen is. Er zijn mensen die veel waarde hechten aan die scheiding, er zijn mensen die dat niet doen. Er zijn mensen die performancewinst halen uit het gebruik van een template enginge, er zijn mensen die dat niet doen. Er zijn mensen die liever iets kant en klaars als smarty gebruiken en er zijn mensen die liever zelf wat bouwen.

Ik denk niet dat die discussie zin heeft, of ooit gehad heeft :) Het is waarschijnlijk nog effectiever om te discussieren over de vraag of groen beter is dan blauw ;)

Nouja, effectief, we weten allemaal dat blauw groen pwnt >:)

[ Voor 3% gewijzigd door FragFrog op 20-11-2006 12:41 ]

[ Site ] [ twitch ] [ jijbuis ]


Acties:
  • 0 Henk 'm!

  • prototype
  • Registratie: Juni 2001
  • Niet online

prototype

Cheer Bear

FragFrog schreef op maandag 20 november 2006 @ 12:40:
[...]

Die discussie is al eens gevoerd en ik geloof dat er nooit echt een antwoord uit gekomen is. Er zijn mensen die veel waarde hechten aan die scheiding, er zijn mensen die dat niet doen. Er zijn mensen die performancewinst halen uit het gebruik van een template enginge, er zijn mensen die dat niet doen. Er zijn mensen die liever iets kant en klaars als smarty gebruiken en er zijn mensen die liever zelf wat bouwen.

Ik denk niet dat die discussie zin heeft, of ooit gehad heeft :) Het is waarschijnlijk nog effectiever om te discussieren over de vraag of groen beter is dan blauw ;)

Nouja, effectief, we weten allemaal dat blauw groen pwnt >:)
offtopic:
Whoa, 'k voel me zowaar aangesproken ;) Als het onterecht is, mijn excuses, maar ik neem aan dat je doelt op de discussie die DexterDee en ik hier ooit hebben gevoerd mbt het nut Smarty. Zonder al teveel in herhaling te vallen, tussen alle lange comments is echter niet echt tot een consensus gekomen idd met wat de beste methodiek is mbt de praktijk, dat is vooral subjectief, maar vanuit de standpunt van een purist is wel voorzichtig overeengekomen dat een optie als prado dan misschien toch wel interessanter is. En blauw is beter ;)

Ontopic, Smarty zou niet tragen horen te zijn door genoemde 'compilatie' (hoogstens zou je dus eenmaal een performance penalty moeten hebben na aanpassen van je templates). Knal er een profiler tegen aan en zoek de bottleneck zou ik zeggen ;) Mocht je desondanks dat niet de code kunnen optimaliseren, denk dan aan het schalen van je machine of zend encoder icm optimizer.

Acties:
  • 0 Henk 'm!

Verwijderd

Mijnsinziens is het voornamelijk van belang dat je gewoon werkt met prettig gereedschap. Dat beetje performance ondervang je of met caching of simpelweg met een sneller systeem.

Acties:
  • 0 Henk 'm!

  • FragFrog
  • Registratie: September 2001
  • Laatst online: 09:34
prototype schreef op maandag 20 november 2006 @ 15:52:
offtopic:
Whoa, 'k voel me zowaar aangesproken ;) Als het onterecht is, mijn excuses, maar ik neem aan dat je doelt op de discussie die DexterDee en ik hier ooit hebben gevoerd mbt het nut Smarty. Zonder al teveel in herhaling te vallen, tussen alle lange comments is echter niet echt tot een consensus gekomen idd met wat de beste methodiek is mbt de praktijk, dat is vooral subjectief, maar vanuit de standpunt van een purist is wel voorzichtig overeengekomen dat een optie als prado dan misschien toch wel interessanter is. En blauw is beter ;)
offtopic:
Erm, ik heb zelf hier eens in een discussie meegedaan over het eventuele nut van template parsers.. het zou zelfs dezelfde discussie geweest kunnen zijn.. Maar sprak jou niet persoonlijk aan hoor, en het was al helemaal geen kritiek. Als ik ga zeuren over nutteloze discussies op internet ben ik nog wel een paar millenia bezig :+

[ Site ] [ twitch ] [ jijbuis ]


Acties:
  • 0 Henk 'm!

  • markg85
  • Registratie: Februari 2003
  • Laatst online: 14-08 20:01
zo.. ik kijk even bijna een dag niet in dit topic en gelijk iet van 10 reacties :)

maargoed.. ik ga gewoon eens datzelfde script draaien met zowel smarty als Template Power en natuurlijk alle opties nog eens goed doorlopen.

EDIT:://

hmm.. ik heb iets erg interessants uitgevonden in smarty in pafiledb... de hele caching feature wordt niet gebruikt!!

ik heb net die cashing even aangezet, maar dat werkt niet lekker.. er zijn namelijk pagina`s waar veel resultaten komen en als die resultaten boven een bepaald nummer komen heb je "pagination" en die pagination zelf werkt niet meer als je de cache aanzet.. net als wanneer je een nieuw bestand toevoegt aan de database.. komt er dan ook niet gelijk te staan, maar pas wanneer de cache tijd weer is verlopen.

hebben jullie misschien een idee hoe ik dit probleem kan oplossen? met die caching is alles namelijk wel heerlijk snel :) (maarja dan gebruik je ook pas echt waar smarty goed in is)

[ Voor 62% gewijzigd door markg85 op 20-11-2006 21:00 ]


Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 13:59

DexterDee

I doubt, therefore I might be

markg85 schreef op maandag 20 november 2006 @ 20:38:
...en als die resultaten boven een bepaald nummer komen heb je "pagination" en die pagination zelf werkt niet meer als je de cache aanzet.. net als wanneer je een nieuw bestand toevoegt aan de database.. komt er dan ook niet gelijk te staan, maar pas wanneer de cache tijd weer is verlopen.

hebben jullie misschien een idee hoe ik dit probleem kan oplossen? met die caching is alles namelijk wel heerlijk snel :) (maarja dan gebruik je ook pas echt waar smarty goed in is)
Daar heb je Smarty Paginate voor... een plugin voor Smarty:
http://www.phpinsider.com/php/code/SmartyPaginate/

Caching gaat prima met deze plugin, hoeveel resultaten je ook moet laten zien :)

Klik hier om mij een DM te sturen • 3245 WP op ZW


Acties:
  • 0 Henk 'm!

  • markg85
  • Registratie: Februari 2003
  • Laatst online: 14-08 20:01
DexterDee schreef op maandag 20 november 2006 @ 21:07:
[...]

Daar heb je Smarty Paginate voor... een plugin voor Smarty:
http://www.phpinsider.com/php/code/SmartyPaginate/

Caching gaat prima met deze plugin, hoeveel resultaten je ook moet laten zien :)
ik weet nou niet of ik: Handig of Kut moet zeggen :P ik heb namelijk net me eigen pagination function afgemaakt (niet voor in smarty).. maar ik ga hier zeker even mee testen.. ziet er erg interessant uit.

is er ook een "smarty page execution time" plugin die laat zien hoe lang het voor de server heeft geduurt om de pagina te genereren? is wel een beetje zinloos maar ik wil het er toch wel bij hebben.

Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 13:59

DexterDee

I doubt, therefore I might be

markg85 schreef op maandag 20 november 2006 @ 21:18:is er ook een "smarty page execution time" plugin die laat zien hoe lang het voor de server heeft geduurt om de pagina te genereren? is wel een beetje zinloos maar ik wil het er toch wel bij hebben.
Dat kun je zelf ook nog wel maken, toch ;)

Onderstaande schaamteloos gejat van een hit op de eerste resultpagina van google. Let niet op de manier waarop ze het hier oplossen, het gaat om het idee :)

Eerste regels in je PHP script
PHP:
1
2
3
4
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$start = $time;


Laatste regels in je PHP script
PHP:
1
2
3
4
5
6
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$finish = $time;
$total_time = round(($finish - $start), 4);
echo '<p>Page generated in '.$total_time.' seconds.</p>'."\n";


Je komt er verder wel uit om dit toe te passen, zelfs in smarty met een $smarty->assign lijkt me :Y)

[ Voor 8% gewijzigd door DexterDee op 20-11-2006 21:44 ]

Klik hier om mij een DM te sturen • 3245 WP op ZW


Acties:
  • 0 Henk 'm!

  • Av3ng3rtje
  • Registratie: December 2002
  • Laatst online: 18-08 10:15
-NMe- schreef op maandag 20 november 2006 @ 08:39:
[...]

Dat is de meest zinloze manier van templates parsen ooit. Template engines als Smarty bieden nog op zijn minst ondersteuning voor control structures zoals loops en dergelijke, iets wat vrij essentiëel is voor vele dingen zoals lijsten en nieuwberichten en dergelijke herhalende patronen. Dat is met zo'n zelfgeschreven klasse ook nog wel te doen, maar dan kun je al snel beter een beproefde klasse zoals Smarty nemen.
Wat ik doe , ik loop door een lijst heen en wijs waarde toe aan een template row template, die waardes wijs ik dan toe aan een var en die var wijs ik weer toe aan een andere template.. vrij straight en doeltreffend, maar ja niet echt een mogelijkheid om if control structures in je templates zelf te bouwen.

Acties:
  • 0 Henk 'm!

  • markg85
  • Registratie: Februari 2003
  • Laatst online: 14-08 20:01
DexterDee schreef op maandag 20 november 2006 @ 21:40:
[...]

Dat kun je zelf ook nog wel maken, toch ;)

Onderstaande schaamteloos gejat van een hit op de eerste resultpagina van google. Let niet op de manier waarop ze het hier oplossen, het gaat om het idee :)

Eerste regels in je PHP script
PHP:
1
2
3
4
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$start = $time;


Laatste regels in je PHP script
PHP:
1
2
3
4
5
6
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$finish = $time;
$total_time = round(($finish - $start), 4);
echo '<p>Page generated in '.$total_time.' seconds.</p>'."\n";


Je komt er verder wel uit om dit toe te passen, zelfs in smarty met een $smarty->assign lijkt me :Y)
weet ik, maar de execution time blijft hetzelfde als ik caching aanzet...

zo is het op dit moment gedaan:
PHP:
1
2
3
4
5
6
7
8
9
$time_start = ($php5 == true) ? microtime(true) : microtime_float();

// allemaal code zooi en includes...

//Calculate execution time
$time_end = ($php5 == true) ? microtime(true) - $time_start : microtime_float() - $time_start;

//Send exec time and queries used to Smarty
$smarty->assign('debug_info', array(count($db->queries['query']), number_format($time_end,5)));


het wordt dus al gedaan via assign, maar die pageload blijft maar exact hetzelfde als caching aan is
* markg85 valt in herhaling

of moet ik de pageload zonder assign doen?

Acties:
  • 0 Henk 'm!

  • DexterDee
  • Registratie: November 2004
  • Laatst online: 13:59

DexterDee

I doubt, therefore I might be

Volgens mij heeft de $smarty->display method ook nog aardig wat in de pap te brokkelen. Beste is inderdaad gewoon helemaal in het begin en helemaal op het einde va je script.

Klik hier om mij een DM te sturen • 3245 WP op ZW


Acties:
  • 0 Henk 'm!

  • markg85
  • Registratie: Februari 2003
  • Laatst online: 14-08 20:01
DexterDee schreef op dinsdag 21 november 2006 @ 23:07:
Volgens mij heeft de $smarty->display method ook nog aardig wat in de pap te brokkelen. Beste is inderdaad gewoon helemaal in het begin en helemaal op het einde va je script.
$smarty->display is toch alleen voor .tpl bestanden? de smarty handleiding zegt in ieder geval van wel..


echt wel balen dat bij dat script (pafiledb) die cache functie standaard uit is.. dat maakt het allemaal veel moeilijker, omdat ik nu eigenlijk hele delen van dit script zou moeten herschrijven om dit aan te krijgen op een manier dat het werkt :) (bijvoorbeeld de pagination) al zou dat dit hele script wel veel sneller maken.. o en de search is de grootste hel :P die moet nou net weer niet gecached worden..

als ik het zo bekijk maak ik min of meer het hele script opnieuw.. kan ik beter helemaal opnieuw beginnen en het mijn script noemen :) (natuurlijk wel met een andere naam en onder gpl)

Acties:
  • 0 Henk 'm!

  • Ricvdp
  • Registratie: Juni 2005
  • Laatst online: 19-09 17:21
-NMe- schreef op maandag 20 november 2006 @ 08:39:
[...]

Dat is de meest zinloze manier van templates parsen ooit. Template engines als Smarty bieden nog op zijn minst ondersteuning voor control structures zoals loops en dergelijke, iets wat vrij essentiëel is voor vele dingen zoals lijsten en nieuwberichten en dergelijke herhalende patronen. Dat is met zo'n zelfgeschreven klasse ook nog wel te doen, maar dan kun je al snel beter een beproefde klasse zoals Smarty nemen.
/me niet eens is
Alleen maar blokken code aanroepen en bepaalde variablen vervangen heeft zeker wel zin. Je kan zo op een zéér eenvoudige manier je front-end gescheiden houden van je achterliggende logica, en dat biedt nogal wat voordelen.

Acties:
  • 0 Henk 'm!

  • osorkon!
  • Registratie: September 2006
  • Laatst online: 10-01 18:56
Ik gebruik smarty al een lange tijd nu, en ben er echt heel tevreden van, of je nu snelheidswinst maakt
of niet weet ik niet echt. Maar het is super handig dat jeje html en php code gescheiden kan houden,
zo blijft alles overzichtelijk en netjes. Wanneer je met grotere sites werkt kan dat nogal een rommelboel geven wanneer je je html en php door elkaar gooit. Ook voor het de opmaak is het handig, gewoon de html gaan aanpassen zonder aan de php code te moeten komen.

Acties:
  • 0 Henk 'm!

Verwijderd

osorkon! schreef op zaterdag 25 november 2006 @ 11:33:
Ik gebruik smarty al een lange tijd nu, en ben er echt heel tevreden van, of je nu snelheidswinst maakt of niet weet ik niet echt. Maar het is super handig dat jeje html en php code gescheiden kan houden, zo blijft alles overzichtelijk en netjes. Wanneer je met grotere sites werkt kan dat nogal een rommelboel geven wanneer je je html en php door elkaar gooit. Ook voor het de opmaak is het handig, gewoon de html gaan aanpassen zonder aan de php code te moeten komen.
Het is wel jammer dat er altijd de verkeerde argumenten worden gebruikt. Je kunt ook prima PHP op dezelfde manier gebruiken. Of welke andere template engine dan ook. Tegenwoordig kan ik lekker kiezen voor Smarty of ouderwetse PHP. Of ik kan er een custom template parser in pluggen. De benadering is voor elk geval hetzelfde. Eérst alle gegevens verzamelen, daarna pas weergeven.

Het lekkere van een goede template engine (ook met PHP templates zul je wat trucs moeten uithalen om het écht lekker te laten werken) is dat je niet meer met veel gezeik zit om aan een simpele lijst te komen waarbij de eerste en/of laatste rij afwijkend moet zijn, of waarvan de rijen om de 3 anders moeten zijn, of dat soort dingen.

Meer het idee is altijd hetzelfde. Wil je lekker handig kunnen coden en de boel goed kunnen onderhouden, schrijf je code dan zo dat je eerst alles verzamelt en verwerkt, en dat je de output naar een template engine passt. En of dát nou PHP of Smarty of Template Light of een of andere XSLT shizzle is hoort niet uit te maken.

Acties:
  • 0 Henk 'm!

  • Technicality
  • Registratie: Juni 2004
  • Laatst online: 13:07

Technicality

Vliegt rechtsom...

markg85 schreef op vrijdag 24 november 2006 @ 14:00:
[...]


$smarty->display is toch alleen voor .tpl bestanden? de smarty handleiding zegt in ieder geval van wel..


echt wel balen dat bij dat script (pafiledb) die cache functie standaard uit is.. dat maakt het allemaal veel moeilijker, omdat ik nu eigenlijk hele delen van dit script zou moeten herschrijven om dit aan te krijgen op een manier dat het werkt :) (bijvoorbeeld de pagination) al zou dat dit hele script wel veel sneller maken.. o en de search is de grootste hel :P die moet nou net weer niet gecached worden..

als ik het zo bekijk maak ik min of meer het hele script opnieuw.. kan ik beter helemaal opnieuw beginnen en het mijn script noemen :) (natuurlijk wel met een andere naam en onder gpl)
als je in je templates_c map kijkt zie je daar de templates mét php tags. Dit moet ook nog allemaal gebeuren in je script. Ikzelf gebruik comments om mijn parsetime e.d. toe te voegen, zie onderaan de bron van www.garderenlive.nl. Dan merk je wel een verschil tussen wel of niet gecached. Als je nu een template veranderd meot je ook het bijbehorende bestand uit je templates_c map halen.

Hoezo kun je je search niet cachen? Je kan alle statische dingen gewoon cachen hoor :s

[ Voor 46% gewijzigd door Technicality op 25-11-2006 12:52 ]


Acties:
  • 0 Henk 'm!

  • markg85
  • Registratie: Februari 2003
  • Laatst online: 14-08 20:01
ja.. de search kan wel, alleen moet ik daar nog aardig wat in veranderen voor die ook echt met smarty`s cache kan werken... in het hele script moet daar veel voor veranderen.

Acties:
  • 0 Henk 'm!

  • Cresso
  • Registratie: December 2001
  • Laatst online: 19-06-2020
markg85 schreef op zondag 26 november 2006 @ 00:31:
ja.. de search kan wel, alleen moet ik daar nog aardig wat in veranderen voor die ook echt met smarty`s cache kan werken... in het hele script moet daar veel voor veranderen.
Dan schakel je toch gewoon de smarty cache aan/uit per individuele pagina? Weliswaar geen performance wint op elke pagina, maar wel op de pagina die het meest bezocht worden (er van uitgaande dat de meest bezochte pagina's wel cacheable zijn)
code:
1
2
$smarty_object->caching = true;
$smarty_object->caching = false;



Overigens kan een template systeem als smarty veel voordelen hebben. Als je bijvoorbeeld een website bouwt voor meerdere talen, dan kan je de vertaling in je templates laten compilen en een compile/cache id meegeven (iets wat templatelite niet heeft) zodat de tekst die in je template staat niet elke keer opgezocht/vertaald hoeft te worden. En iets als {trans}Vertalen{/t} is een stuk makkelijker om mee te werken dan: <?php trans('vertalen'); ?>. Ook het gebruik van 'modifiers' is erg handig en scheelt je een hoop werk om zoiets zelf op een veiliger manier te maken. Bijv {$tekst|lower}

Acties:
  • 0 Henk 'm!

  • osorkon!
  • Registratie: September 2006
  • Laatst online: 10-01 18:56
Verwijderd schreef op zaterdag 25 november 2006 @ 11:45:
[...]

Het is wel jammer dat er altijd de verkeerde argumenten worden gebruikt. Je kunt ook prima PHP op dezelfde manier gebruiken. Of welke andere template engine dan ook. Tegenwoordig kan ik lekker kiezen voor Smarty of ouderwetse PHP. Of ik kan er een custom template parser in pluggen. De benadering is voor elk geval hetzelfde. Eérst alle gegevens verzamelen, daarna pas weergeven.

Het lekkere van een goede template engine (ook met PHP templates zul je wat trucs moeten uithalen om het écht lekker te laten werken) is dat je niet meer met veel gezeik zit om aan een simpele lijst te komen waarbij de eerste en/of laatste rij afwijkend moet zijn, of waarvan de rijen om de 3 anders moeten zijn, of dat soort dingen.

Meer het idee is altijd hetzelfde. Wil je lekker handig kunnen coden en de boel goed kunnen onderhouden, schrijf je code dan zo dat je eerst alles verzamelt en verwerkt, en dat je de output naar een template engine passt. En of dát nou PHP of Smarty of Template Light of een of andere XSLT shizzle is hoort niet uit te maken.
True, maar het is een manier van werken die gemakkelijk en overzichtelijk is voor me, ieder zen smaak ;)
Pagina: 1