Toon posts:

[php] Templates vanaf het begin...

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

Verwijderd

Topicstarter
Hey,

ik weet dat er al meerdere topics over zijn geweest, maar daar kon ik nooit echt goed uithalen wat ik zocht,

in deze topic graag een discussie over templates, vanaf het begin.......

Ik heb nog nooit met templates gewerkt, en wil het toch 's gaan doen...
waarom? omdat ik denk dat het coden dan steeds sneller gaat, je files overzichtelijker worden en je scripts beter/sneller worden qua laden en druk op de server....
(als ik iets fout heb of vergeet: vertel het me :))

Er zijn ook gigantisch veel templates, welke kun je het beste gebruiken?
Veel templates hebben ook erg veel dingen die ik bijvoorbeeld niet nodig zou hebben (denk ik), hoe ga je daarmee om? Gewoon alles uit de template halen wat je toch niet gebruikt?

Kan iemand me ook uitleggen hoe een template werkt als je hem zelf zou maken, laten we als voorbeeld een tabel nemen, hoe ziet de opbouw in de template eruit, en hoe ga je er mee om in je script (hoe geef je zo'n tabel dan weer met die template).

Thnx alvast ;) Hopen dat dit een goeie 'tutorialachtige' topic wordt.....

Verwijderd

Ik weet niet precies wat voor goddelijks jij je bij een template voorstelt, maar het valt allemaal best mee. Stel je wilt een website maken met links een navigatiebalk (in een tabel) en rechts de rest van de pagina. In dit geval kun zo'n template maken:
code:
1
2
3
4
5
6
<table>
<tr>
   <td><<navigation>></td>
   <td><<main>></td>
</tr>
</table>

De table tags moeten je bekend voorkomen. In dit voorbeeld ga ik er vanuit dat je een templateparser gebruikt in PHP, perl, maakt eigenlijk niet uit die met <<tags>> werkt. Kortom de <<tagnaam>> vervangt door hun (over het algemeen) dynamische waarden.

Wat je nu in je programma doet is het templatebestand laden (inhoud zie boven), en in dit programma de waarden voor <<navigation>> en <<main>> toewijzen. Dus wordt <<navigation>> een menu met alle onderdelen uit een site bijvoorbeeld. En <<main>> de inhoud van de pagina waar je op data moment zit.

Zo simpel is het. :)

Verwijderd

Topicstarter
Hmm ben ik nu in de war met iets anders, ik bedoelde het weergeven van bijvoorbeeld html,

als je normaal een stuk html wilt gebruiken in php dan echo je de hele zooi nadat je " gereplaced hebt met \", soms lijkt dat erg onoverzichtelijk,
ik dacht dat dat met templates mooier kon...

ook dacht ik dat je met templates sneller en overzichtelijker kon coden.....

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 09-08 19:19
Je PHP-code wordt met Templates ook een heel stuk overzichtelijker. Er komt nl. geen HTML meer in voor.

Het enige van je nog in je PHP-code hebt staan is hoe een bepaald iets uit de template moet worden vervangen.

voorbeeld:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
// Hier mist het e.e.a., maar het gaat om het idee



$title = "Blaat" // of iets wat direct uit je db komt



$template = new Template;

$template->assign("{TITLE}", $title);

$template->parse();
?>

Op de manier zoals je het nu waarschijnlijk hebt, heb je een enorme lap HTML in je code staan.

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

je kan het ook omdraaien: maak een array van je te vervangen waardes, en loop vv. die array af:

$a[title] = 'hoi';
$a[end] = "'t is afgelopen";

en in de template-parser
foreach($a as $k=>$v)
$text = str_replace($k, $v,$text);

snappie?

Klaar voor een nieuwe uitdaging.


Verwijderd

Topicstarter
Ok thnx, dat snap ik,
maar kunnen jullie misschien een voorbeeldje geven van het weergeven van een tabel?
(met zoveel mogelijk attributes) en bijv. 2 kolommen en 1 rij......

  • WoutF
  • Registratie: Maart 2000
  • Laatst online: 09:21

WoutF

Hoofdredacteur
dit is misschien heel slordig ofzo, maar overal waar je een menu wilt kun je toch gewoon
code:
1
require ("menu.php");

doen?

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 09-08 19:19
Op vrijdag 23 maart 2001 18:04 schreef -TangLeFuzZ- het volgende:
Ok thnx, dat snap ik,
maar kunnen jullie misschien een voorbeeldje geven van het weergeven van een tabel?
(met zoveel mogelijk attributes) en bijv. 2 kolommen en 1 rij......
Op www.phpfreakz.com staat wel ergens een goede uitleg.

edit:
URL effe ok gemaakt

Verwijderd

Topicstarter
'k zal die tutorial 's ff uitprinten.....
thnx....

clubcharts is nu best wel een zootje, tis dat ik 'm gemaakt heb, anders zou ik er geen hol van snappen :)

  • tomato
  • Registratie: November 1999
  • Niet online
Op vrijdag 23 maart 2001 18:01 schreef chem het volgende:
je kan het ook omdraaien: maak een array van je te vervangen waardes, en loop vv. die array af:

$a[title] = 'hoi';
$a[end] = "'t is afgelopen";

en in de template-parser
foreach($a as $k=>$v)
$text = str_replace($k, $v,$text);

snappie?
Zou ik niet doen. Zeker als je templates wat groter zijn, zal dit het waarschijnlijk een stuk trager maken. Voor elke variabele moet nu de te parsen 'tekst' compleet doorzocht worden, anders hoeft dat maar één keer. Je doet het hier trouwens ook vaak overbodig, aangezien het nogal eens voorkomt dat een variabele wel assigned is, maar niet gebruikt wordt in je template (of in je block).

Templates sucken over het algemeen toch nog best. In kleine applicaties is het gewoon niet de moeite waard, je hebt er dan niets aan. In grote applicaties zullen je template files al snel zo uitgebreid worden dat alles supertraag wordt. Tenminste, als je je gui voor 100% in de templates wilt zetten, waar ik wel voor ben, anders kun je het net zo goed niet doen.

Daarnaast heb ik eigenlijk nog geen echt goede template engine gezien, al gaf ik meestal al snel de moed op als ik zag dat ze niet gecached waren. XTemplate (phpclasses.upperdesign.com oid) spreekt me het meest aan, niet in het minst omdat deze gewoon vrij eenvoudig en basic is. Daardoor is ie ook (verhoudingsgewijs) snel. Maar doordat vrijwel elke reguliere template engine eerste de complete template file-tree in gaat lezen zijn ze eigenlijk allemaal sloom. Doormiddel van caching is hier wel wat aan te doen, maar dat vind ik ook niet echt een heel fijne oplossing (meestal zul je het ook zelf in moeten bouwen).
Ook heb ik nog niet één engine die op een goede manier conditions ondersteunt. Tuinhark kan daarover meepraten ;).

Er is nog veeeel meer te discussieren over template engines, maar daar moet dan maar iemand over beginnen *D.
Ik heb overigens mijn eigen template engine gemaakt die alle grote nadelen van de meeste engines niet kent :7

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 09-08 19:19
Op vrijdag 23 maart 2001 20:12 schreef tomato het volgende:

verhaaltje
Idd. Je kan het beste zelf je eigen maken, maar dan moet je wel eerst door hebben hoe zoiets werkt.

Verwijderd

Maar bijvoorbeeld met een forum, hoe krijg je de postings in de template gedaan?
Hoe geef je voor het script aan wat er herhaald moet worden (het stukje html voor de row) en wat niet?
Of moet je dan persé je row in een losse file gooien? (wat ik op een tutorial van phpbuilder zag)

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 09-08 19:19
Op vrijdag 23 maart 2001 20:34 schreef johnny appleseed het volgende:
Maar bijvoorbeeld met een forum, hoe krijg je de postings in de template gedaan?
Hoe geef je voor het script aan wat er herhaald moet worden (het stukje html voor de row) en wat niet?
Of moet je dan persé je row in een losse file gooien? (wat ik op een tutorial van phpbuilder zag)
Als je hem zelf maakt is het nog wel zo te doen dat je het in 1 bestand kan houden.

Misschien een leuk project om te maken.

  • Norjee
  • Registratie: April 2000
  • Niet online
edit:

Laat maar

  • Gilles
  • Registratie: Februari 2000
  • Laatst online: 28-07-2025
Ik maak meestal gewoon een externe php file (getlayout.php of zo) met een klasse er in die weer een aantal methoden bevat. dan kan ik bijvoorbeeld $layout->tophtml(); en dan krijg ik een hele zooi html maar ook bijvoorbeeld $layout->putbox(hoogte,breedte,titel,inhoud); etc doen. Dit kan echt je code stukken korter houden.. op dit moment gebruik ik praktisch nooit meer het echo commando buiten die getlayout.php

Verwijderd

Topicstarter
ik ben nu een beetje wat dingen aan het uitproberen met FastTemplate,
maar dit is niet de gecachede versie, kan ik makkelijk overstappen?

  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

Op vrijdag 23 maart 2001 20:12 schreef tomato het volgende:

[..]

Zou ik niet doen. Zeker als je templates wat groter zijn, zal dit het waarschijnlijk een stuk trager maken. Voor elke variabele moet nu de te parsen 'tekst' compleet doorzocht worden, anders hoeft dat maar één keer. Je doet het hier trouwens ook vaak overbodig, aangezien het nogal eens voorkomt dat een variabele wel assigned is, maar niet gebruikt wordt in je template (of in je block).
Ik heb ook gewoon heel simpel mn eigen template-engine gemaakt die het template-bestand inleest in een string, vervolgens de variabelen toewijst met str_replace en dan het hele zooitje afdrukt. Maar op mijn manier moet ie dus ook voor iedere waarde de hele string doorzoeken.
Hoe heb jij dat opgelost dan?

On track


Verwijderd

Als je templates gebruikt is het erg eenvoudig om er cashing in te bouwen...

Kenmerk van een template is dat je de gehele pagina in een var hebt staan.

Bijvoorbeeld Xtemplate :

$content->text("main");

Voor je script kun je dus gewoon kijken hoe oud je gecashte pagina is :

Te oud -> draai script en sla template op
Ok -> stuur de gecashte

Suc6

  • tomato
  • Registratie: November 1999
  • Niet online
WouZz: Ik heb ook gewoon heel simpel mn eigen template-engine gemaakt die het template-bestand inleest in een string, vervolgens de variabelen toewijst met str_replace en dan het hele zooitje afdrukt. Maar op mijn manier moet ie dus ook voor iedere waarde de hele string doorzoeken. Hoe heb jij dat opgelost dan?

Met een replace regex één keer je hele block doorlopen, dus zoiets:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
function evaluate($s) {

   global $vars;

   return $vars[$s];

}



$pattern = "!{(.*)}!isUe";

$replace = "evaluate('\\1')";

$b = preg_replace($pattern, $replace, $b);
?>

Weel heel sterk versimpeld, maar dit is waar het op neer komt. De regexen die ik gebruik zijn wat uitgebreider, om gelijk conditions, references naar andere blocks en arrays te matchen.


dewie: Als je templates gebruikt is het erg eenvoudig om er cashing in te bouwen...
[...]
Voor je script kun je dus gewoon kijken hoe oud je gecashte pagina is :

Te oud -> draai script en sla template op
Ok -> stuur de gecashte


Moet je wel uitkijken als de geparsede versie van je block verschilt per user of per minuut of per whatever er gebeurt. De reden dat je uperhaupt *een* ss-scripttaal gebruikt is vaak om de pagina's dynamisch te maken en dan wordt caching iets ingewikkelder (maar natuurlijk kan het, en het helpt enorm).

Verwijderd

Topicstarter
Op dit moment ziet de opbouw van een pagina van clubcharts er (in het kort, zonder details) zo uit:
ik include een header, ik bouw de inhoud van de pagina op, ik include een footer....

nu ik dus wat met templates aan het testen ben gebruik ik ze voor de inhoud van de pagina,
dus:
ik include een header, ik bouw de inhoud op via de templates, ik include een footer...

is dat slim/dom, kan het beter?

  • tomato
  • Registratie: November 1999
  • Niet online
Het is mooier om de header/footer ook in je template op te nemen.

Verwijderd

Topicstarter
dat is waar ja,
nu gebruik ik de fastprint optie wel iets van 5 keer in m'n file, vertraagt dat ook?

  • tomato
  • Registratie: November 1999
  • Niet online
Ik ken fasttemplates niet echt goed, dus daar kan ik niet specifiek op in gaan. Ik vind het niet zo mooi om meerdere keren te printen binnen een pagina. Een groot voordeel van je templates is daarmee namelijk verloren: je template kan bepalen wat waar/hoe komt te staan en nu bepaal je eigenlijk in je script al een volgorde van die 5 delen. Wanneer je je templates gaat aan passen en dan eigenlijk je menu onderaan ipv bovenaan in je HTML file nodig hebt, heb je een probleem.
Het mooiste is om aan het eind pas alles eruit te gooien, maar daar zit weer een nadeel aan dat het hele script uitgevoerd moet worden voordat de gebruiker data binnen kan halen. Maar in applicaties waarin execution time veel lager ligt dan de transfer time (zal bij jou waarschijnlijk zo zijn) merk je dat niet zo goed.

Verwijderd

Topicstarter
pfff ik weet niet of fasttemplate in het algemeen moeilijk is,
maar ik wordt knettergek :)

ik probeer er met die tutorial op phpfreakz uit te komen maar dat lukt totaal niet, misschien dat jullie me kunnen helpen, ik zal de opbouw wat uitgebreider behandelen:

ik heb de layout nu in pagina.tpl staan, (dat zijn m'n oude footer en header samen, en tussen die 2 staat {INHOUD})....
en ik heb een inhoud.tpl gemaakt waarin de basis van het volgende staat:

{TABEL1}
{TABEL2}
{TABEL3}

ik heb nu een pagina, waar ik 3 keer laten we zeggen 5 items uit een database haal (dit zijn die TABELx van hierboven).
die 3 verschillende soorten items moeten dezelfde opbouw hebben, dus heb ik gebruik gemaakt van een templatje genaamd tabel.tpl
zodat ze er allemaal hetzelfde uitzien het het coden mooi overzichtelijk is....

wat moet ik nu doen, om ervoor te zorgen dat alles goed op z'n plek komt en wordt geecho'd? Ik snapte het in het begin wel, die tutorial snap ik ook goed, maar volgens mij is dit iets ingewikkelder...
kan ook zijn dat ik ergens gewoon overheen kijk, ik kom er gewoon niet op :'(

  • tomato
  • Registratie: November 1999
  • Niet online
Ok, fasttemplates gebruikt blijkbaar voor elk block een apart bestand (?), lijkt me wel irritant maar goed. Ik ga even van de syntax van XTemplate uit, omdat ik dat eerst altijd gebruikte, maar id zou in fasttemplates hetzelfde zijn.

Ik heb in mijn database een tabel:

Mijntabel
ID
Inhoud

Nu wil ik de inhoud van Mijntabel in een HTML tabelletje hebben. Dit is mijn template file:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!-- BEGIN: main -->
<HTML>
<HEAD><TITLE>{titel}</TITLE></HEAD>
<BODY>

Hier komt de inhoud van Mijntabel:

<!-- BEGIN: tabel -->
<TABLE>
   <TR>
      <TD><B>ID:</B></TD>
      <TD><B>Inhoud:</B></TD>
   </TR>
   <!-- BEGIN: row -->
   <TR>
      <TD>{id}</TD>
      <TD>{inhoud}</TD>
   </TR>
   <!-- END: row -->
</TABLE>
<!-- END: tabel -->

</BODY>
</HTML>
<!-- END: main -->

Dan kan dit (een deel van) je code zijn:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?
$result = $db->query("SELECT ID, Inhoud FROM Mijntabel");



while ($row = $db->f_array($result)) {

   $t->assign("id", $row["ID"]);

   $t->assign("inhoud", $row["Inhoud"]);

   $t->parse("main.tabel.row");

}



$t->parse("main.tabel");



$t->assign("titel", "Dit is een test");



$t->parse("main");

$t->out("main");
?>

Waarbij $t een instance is van je template class. Je kunt vaak ook arrays in één keer assignen. In je template file zou het dan zo worden:
code:
1
2
<TD>{ROW.ID}</TD>
<TD>{ROW.Inhoud}</TD>

En in je code:
PHP:
1
2
3
4
5
6
7
8
9
<?
while ($row = $db->f_array($result)) {

   $t->assign("ROW", $row);

   $t->parse("main.tabel.row");

}
?>

HTH :Y)

Verwijderd

Topicstarter
thnx!

nog een ding he, als ik in m'n pagina.tpl php code zet dan parsed ie dat niet...
ahhh, volgens mij geef ik meteen antwoord op m'n eigen vraag :)

addtype .tpl :P

  • tomato
  • Registratie: November 1999
  • Niet online
Nee, dat parsed ie inderdaad niet, is ook niet echt de bedoeling van een template file.

Verwijderd

Eerst templates maken om je php-code van je html te scheiden en daarna in die templates php-code gaan prakken :?

Verwijderd

Topicstarter
nee, foutje, dacht ik niet bij na, ik had eerst nog code in m'n header staan, en ik had de header en de footer gewoon gekopieerd in 1 template, vergeet dat maar :)

er is nu nog wel iets vreemds aan de hand, als ik in m'n templates {VAR} gebruik dan komt die var wel tevoorschijn, maar die haakjes zijn ook zichtbaar!
als ik gewoon VAR gebruik, dan werkt het gewoon perfect, terwijl je officieel toch {VAR} zou moeten gebruiken met fasttemplate.......

Verwijderd

Topicstarter
En nog ff iets,

als ik m'n testfile bekijk, dan ziet hij er de ene keer zo uit (verrot):
http://www.clubcharts.nl/1.gif

en als ik hem refresh zo:
http://www.clubcharts.nl/2.gif

Verwijderd

Topicstarter
^^ sorry :)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-09 20:58

Janoz

Moderator Devschuur®

!litemod

* Janoz heeft nog nooit echt met templates gewerkt, maar dit topic zet 'm aan het denken.

Waarom zou het parsen van een template eigenlijk realtime moeten gebeuren? Kijk bijvoorbeeld eens naar de templates in Dreamweaver. Niet dat een template engine hetzelfde zou moeten werken, maar waarom zou je niet 1 of andere template preprocessor maken die kant & klare php files uitpoept die je op je server zet?
Heb je gelijk geen last meer van cashing en trage scripts ed. Als je dan wat aan je layouts veranderd hoef je alleen je site opnieuw door de arser te gooien voordat je hem upload..

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Wat jij wilt doet smarty al:

http://www.phpinsider.com/php/code/Smarty/

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-09 20:58

Janoz

Moderator Devschuur®

!litemod

Ik had ook niet verwacht dat ik de enige met dit ID zou zijn hoor :)

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • bartvb
  • Registratie: Oktober 1999
  • Laatst online: 26-08 16:09
Hmm, damn! dat http://www.phpinsider.com/php/code/Smarty/ is errug leuk..

We hebben voor ons project ook zitten zoeken naar een template engine, heel even naar FastTemplates gekeken maar dat dingen is echt heeeeeeeeel traag :( Tijd met phplib-templates gewerkt maar dat was ook niet snel genoeg (sommige pagina's 0.2 seconde voor alleen template spul!!).

Toen hebben we eigenlijk net zoiets als Smarty gebouwd.. Damn :) Dat we dat ding niet eerder gevonden hebben zeg |o |o

  • DiSiLLUSiON
  • Registratie: September 2000
  • Laatst online: 30-05 14:58
Dat Smarty is wel leuk, maar ik begrijp dat TangLeFuzZ templates voor z'n forum wilt gebruiken, en dan is het niet echt handig.

Dan krijg je van die UBB-Achtige praktijken, met een grote server-load, omdat de server elke x als er gereageerd wordt enzo opnieuw de shit moet parsen..

Verwijderd

ehm...

1) UBB gebruikt geen templates
2) VBulletin gebruikt templates en werkt snel genoeg (forums met meer dan 1 miljoen postings bekend)
3) Smarty werkt juist anders: Elke template wordt niet opnieuw geparsed bij het opvragen, maar van elke template wordt een php file gemaakt bij elke verandering van de template. Dus de executietijd ligt +/- even hoog als html geintegreerd in phpbestanden. En daarnaast wordt de output ook nog gecached.

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 09-08 19:19
Op zondag 25 maart 2001 15:22 schreef bartvb het volgende:
...
We hebben voor ons project ook zitten zoeken naar een template engine, heel even naar FastTemplates gekeken maar dat dingen is echt heeeeeeeeel traag :(
Had je de str_replace() moeten vervangen in preg_replace(). Dan wordt ie al een stuk sneller.

  • bartvb
  • Registratie: Oktober 1999
  • Laatst online: 26-08 16:09
Hmm, str_replace hoort toch echt flink sneller te zijn dan preg_replace hoor..

Maar als de makers van FastTemplates dat zelf niet hebben kunnen bedenken heb ik er niet veel vertrouwen in.


BTW van die Smarty achtige systemen zijn juist heel geschikt voor forums (fora, whatever), al die vage blocks e.d. om row en ander repeterend spul te kunnen maken wordt vervangen door foreach() achtige dingen en als die variabelen worden vervangen door de normale $variable dingen. Je heb dan dus een stuk 'template' dat je met exec() gewoon uit kan voeren en niet veel meer is dan een hoop HTML met een zooi $variabelen en wat if's en foreach()-es ertussen. Da's allemaal een heeeeeel stuk sneller dan als die preg_replaces en vage constructies om die blocks te kunnen vervangen.

  • Tuinhark
  • Registratie: April 2000
  • Laatst online: 11-09 10:09

Tuinhark

Retro

Klinkt geweldig dat Smarty.. :7 Ik zou het ook zeker in mijn forum gebruiken, maar ik ben nu net zo ver dat het 100% PHP3 compatible is.. :) Vervolgens lees ik net dat Smarty iig 4.0.2 oid nodig heeft om correct te functioneren. |:(

Ik vind het zo wel goed... :z Ik houd het wel bij mijn eigen template engine.

:Y)

  • DiSiLLUSiON
  • Registratie: September 2000
  • Laatst online: 30-05 14:58
Op zondag 25 maart 2001 18:30 schreef Mas*Mind het volgende:
ehm...

1) UBB gebruikt geen templates
2) VBulletin gebruikt templates en werkt snel genoeg (forums met meer dan 1 miljoen postings bekend)
3) Smarty werkt juist anders: Elke template wordt niet opnieuw geparsed bij het opvragen, maar van elke template wordt een php file gemaakt bij elke verandering van de template. Dus de executietijd ligt +/- even hoog als html geintegreerd in phpbestanden. En daarnaast wordt de output ook nog gecached.
Dat bedoel ik juist!

Dan krijg je dus UBB praktijken, dat elke x een bestand wordt weggeschreven als iets veranderd..

Ik gebruik met mijn forum ook templates en het werkt perfect.. maar zo'n cacheing technologie als dat Smarty is niet handig, want alle voordelen van php tenover cgi zijn meteen weg: de dynamiek..

  • Tuinhark
  • Registratie: April 2000
  • Laatst online: 11-09 10:09

Tuinhark

Retro

Hey DiS, volgens mij heb je het mis..

Die gegenereerde PHP files kunnen volgens mij nog wel arrays en variabelen accepteren en die dynamisch inpassen. Het zijn dus geen statische PHP files (zoals jij bedoelt). (En indien wel; ideetje voor een nieuwe template engine?? Anyone? :P)

(NB: Ik moet ff zeggen dat ik nog nooit met Smarty heb gewerkt, dus ik spreek slechts uit opvatting, niet ervaring.)

:Y)

Verwijderd

Op zondag 25 maart 2001 19:13 schreef DiSiLLUSiON het volgende:

[..]

Dat bedoel ik juist!

Dan krijg je dus UBB praktijken, dat elke x een bestand wordt weggeschreven als iets veranderd..

Ik gebruik met mijn forum ook templates en het werkt perfect.. maar zo'n cacheing technologie als dat Smarty is niet handig, want alle voordelen van php tenover cgi zijn meteen weg: de dynamiek..
De pagina's worden om een x aantal minuten/uren (zelf in te stellen) gecached...Het wordt dus niet bij elke request gedaan (dát is juist het principe van cachen) en de templates worden gecompiled tot php-scripts (bij elke verandering v/d template) dus het nadeel van de parse-vertraging valt helemaal weg

Caching is ook uit te zetten trouwens...

  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 09-08 19:19
Voor een vrij rustig forum is zo'n manier van cachen nog wel te doen, omdat de de pagina's niet zo vaak worden verandert.

Bij een druk forum zal het waarschijnlijk helemaal mis gaan. Als er 2 post binnen een seconde gebeuren, betekent dat dat de forumlijst en indexlijst moeten worden geupdate. Dat zijn dus al 4 bestanden in dezelfde seconde. Als er dan tegelijk een heleboel mensen aan die bestanden trekken omdat ze ze willen zien, werkt dat niet optimaal.

De beste manier is niet met templates werken, met de bijbehorende nadelen, of een template gebruiken die exact heeft wat je nodig hebt (meestal zelf geschreven).

  • DiSiLLUSiON
  • Registratie: September 2000
  • Laatst online: 30-05 14:58
Op zondag 25 maart 2001 19:30 schreef Tuinhark het volgende:
Hey DiS, volgens mij heb je het mis..
:Y)
Dat blijkt maar weer :)

Verwijderd

Op maandag 26 maart 2001 02:52 schreef freak007 het volgende:
Voor een vrij rustig forum is zo'n manier van cachen nog wel te doen, omdat de de pagina's niet zo vaak worden verandert.

Bij een druk forum zal het waarschijnlijk helemaal mis gaan. Als er 2 post binnen een seconde gebeuren, betekent dat dat de forumlijst en indexlijst moeten worden geupdate. Dat zijn dus al 4 bestanden in dezelfde seconde. Als er dan tegelijk een heleboel mensen aan die bestanden trekken omdat ze ze willen zien, werkt dat niet optimaal.

De beste manier is niet met templates werken, met de bijbehorende nadelen, of een template gebruiken die exact heeft wat je nodig hebt (meestal zelf geschreven).
Ik kan uit ervaring spreken dat templates bij veelbezochte servers prima werken...

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

je kan ook je parse_template() functie gewoon php laten eval-en

je scheidt nog steeds al je code van de html maar je kan wel MEER en SNELLER. Moet de designer gewoon <?=$varname?> typen ipv {VARNAME}

what's the difference...

Klaar voor een nieuwe uitdaging.


  • tomato
  • Registratie: November 1999
  • Niet online
Op maandag 26 maart 2001 09:22 schreef chem het volgende:
je kan ook je parse_template() functie gewoon php laten eval-en

je scheidt nog steeds al je code van de html maar je kan wel MEER en SNELLER. Moet de designer gewoon <?=$varname?> typen ipv {VARNAME}

what's the difference...
vind ik eigenlijk een heel ranzige methode. Welke variabelen toegankelijk zijn voor de gebruiker moet niet bepaald worden in je template (front-end), maar in je back-end. Stel dat één of andere loser gewoon <?=$mysql_user.": ".$mysql_password?> in z'n template zet (designer of niet). Nu lijkt dit misschien wat overdreven, en het zal inderdaad veel sneller zijn, maar ik vind het niet de manier.

Verwijderd

Op maandag 26 maart 2001 09:22 schreef chem het volgende:
je kan ook je parse_template() functie gewoon php laten eval-en

je scheidt nog steeds al je code van de html maar je kan wel MEER en SNELLER. Moet de designer gewoon <?=$varname?> typen ipv {VARNAME}

what's the difference...
Los ervan dat Tomato helemaal gelijk heeft, hoef je trouwens op die manier niet eens <? en ?> om je variabelen te zetten...als je:

"asdfsafsd $variabele dadsaf";

evalled, wordt $variabele ook geparsed...
Pagina: 1