[php] HTML Template systemen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Na dat ik kennis heb gemaakt met wat template systemen die zich in php bevinden wil ik graag een definitieve keuze maken over welke te gebruiken.
Ik ken tot nu toe Smarty en die van PEAR. Met smarty heb ik alleen veel goede verhalen over gehoord met pear's IT heb ik gewerkt.
Dus welke van de twee is het best of is er misschien een derde systeem wat ik over het hoofd zie?

Acties:
  • 0 Henk 'm!

  • Helmet
  • Registratie: Januari 2002
  • Laatst online: 21-08 15:00
Het beste is een relatief begrip, als jij lekker werkt met PEAR waarom zou je dan overstappen op iets anders? Ik werk zelf met YAPTER (www.yapter.com) en ben hier vrij tevreden over :)

Icons are overrated


Acties:
  • 0 Henk 'm!

Verwijderd

Eén die ik héél goed vind:

Template Power.
Yapter suckt vind ik.
Template Power is eenvoudig en de manual die online staat is erg handig!
http://templatepower.codocad.com

alstublieft!

Acties:
  • 0 Henk 'm!

  • saviour
  • Registratie: Juli 2000
  • Niet online
Ik gebruik zelf ook TemplatePower, werkt erg lekker en is veelzijdig.
Ikzelf vond de manual nou weer niet echt ontiechlijk duidelijk :P

Maar idd, probeer er gewoon een paar uit en gebruik degene die jij het fijnste vindt.

Acties:
  • 0 Henk 'm!

Verwijderd

TemplatePower idd, die vind ik tot nu toe de beste van alle tig die ik nu heb gehad. Weinig onnodige shit die je toch nooit zal gebruiken, het is snel en simpel en het is gewoon een goede template parser.

En sjah, Smarty is ook een goede. Maar wat je jezelf moet afvragen is of je al dat "rand gebeuren" wel nodig hebt...

Acties:
  • 0 Henk 'm!

  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 15-09 16:19

alienfruit

the alien you never expected

Zelf ben ik bezig met een scriptable template; in xml achtige taal gemengd met een beetje template power en het struts idee. Moet alleen nog uitzoeken hoe ik dit aan de gang krijg onder linux; ik wil er namelijk een .so van maken en die gebruiken in PHP. Iemand enig ervaring hiermee?

Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Laat ik vast even ingrijpen voordat dit topic uit de hand loopt: meningen binnen dit topic graag gefundeerd brengen, dus geen 'die suckt en die niet' replies. zodra het moddergooien wordt gaat ie dicht

Professionele website nodig?


Acties:
  • 0 Henk 'm!

  • mocean
  • Registratie: November 2000
  • Laatst online: 04-09 10:34
Smarty vind ik zelf erg ok. Kan je helemaal zelf tunen. o.a.:
-Database backend
-Andere template includes (in template)
-PHP includen, en in de template zelf (of je dat moet willen is een tweede)
-Geweldig plugin systeem. Je kan functies programmeren, plaats die in een dir en je hebt een nieuwe functie voor in je templates.
-Templates worden gecompiled, dus de dynamische onderdelen worden in je template gezet als PHP en die worden beheerd & bewaard door smarty zelf.
-Goede debug opties.
-Caching zeer uitgebreid instelbaar. Bij ingewikkelde templates zorgt dit voor zeel veel performancewinst. Ik haal zelfs exectimes tot 0.040 seconde!

Dus ik zeg smarty :D

Koop of verkoop je webshop: ecquisition.com


Acties:
  • 0 Henk 'm!

Verwijderd

Schrijf zelf een templatesysteem zou ik zeggen! Dit lijkt misschien vrij lastig in het begin maar het valt eigenlijk wel mee (ik spreek uit ervaring).

In feite hoeft het niet meer te zijn dan een functie die een brok HTML code laadt (uit een database tabel of een bestand).

Door in de HTML code PHP variabelen te zetten (bv. $naam o.i.d.) kun je heel eenvoudig met behulp van een eval() van de ingeladen HTML code bepaalde delen van het template invullen met custom data, op voorwaarde dat je vantevoren de variabelen die in het template voorkomen een zinnige waarde geeft. En klaar is kees :) Mocht je nog meer functionaliteit willen kun je die er later nog altijd aan toevoegen.

Er zijn overigens nog andere (betere ?) manieren om custom data toe te voegen aan een template, door bijv. een simpele search en replace.

Acties:
  • 0 Henk 'm!

  • Helmet
  • Registratie: Januari 2002
  • Laatst online: 21-08 15:00
Ik heb smarty ooit bekeken, maar imho is dit gewoon een eigen programmeertaal die onder php draait, je kunt zoveel dingen instellen die je nooit nodig hebt en dat maakt het ontwikkelen van de templates alleen maar lastig

zou parse een eigen template engine ontworpen hebben voor dit forum?

Icons are overrated


Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Helmet schreef op 22 June 2003 @ 11:22:
Ik heb smarty ooit bekeken, maar imho is dit gewoon een eigen programmeertaal die onder php draait, je kunt zoveel dingen instellen die je nooit nodig hebt en dat maakt het ontwikkelen van de templates alleen maar lastig

zou parse een eigen template engine ontworpen hebben voor dit forum?
Ik weet niet of het nou Parse of Topix was, maar een van de twee maakt gebruik van FastTemplates.

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 04-09 19:14
React heeft een eigen template engine. Volgens chem is ie retesnel
[rml][ php] preg_replace probleem (templates)[/rml]

Maar of hij die nu ook gebruikt in React, dat moet je hem maar even vragen ;).

[ Voor 27% gewijzigd door zeroxcool op 22-06-2003 11:38 ]

zeroxcool.net - curity.eu


Acties:
  • 0 Henk 'm!

Verwijderd

Smarty is inderdaad erg goed en je kunt het zelf erg goed tunen. De chaching functie is echt een snelheids winst.

Url: http://smarty.php.net

Acties:
  • 0 Henk 'm!

Verwijderd

mocean schreef op 22 June 2003 @ 01:45:
Caching zeer uitgebreid instelbaar. Bij ingewikkelde templates zorgt dit voor zeel veel performancewinst. Ik haal zelfs exectimes tot 0.040 seconde!
Kun je mij ook vertellen of dit lekker werkt met veel database werk?

Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 11-09 11:19

chem

Reist de wereld rond

ZeRoXcOoL schreef op 22 June 2003 @ 11:35:
React heeft een eigen template engine. Volgens chem is ie retesnel
[rml][ php] preg_replace probleem (templates)[/rml]

Maar of hij die nu ook gebruikt in React, dat moet je hem maar even vragen ;).
jah, we gebruiken een eigen template engine.

Het is een vrij basaal en dedicated systeem, maar flexibel en krachtig.

Output bestaat bij React uit outputhandlers, zoals SOAP, XML, HTML (templates), NNTP etc.

De TPL-handler heeft een functie a la
PHP:
1
2
function get_output($functionname, $outputvars = array(), 
        $action='_default', $data = array(), $data_location = array())

Waarbij men de functie aanroept dmv (bv)
PHP:
1
2
3
$output = $output->get_output('list_messages"message',$row,
        $action,array('stripnewlines' => true),
        array('board' => 0, 'category' => $this->forum->category->categoryid)


De $outputvars kan zowel een array (bv mysql_fetch_array) zijn, als een mysql resource pointer.

De templates worden geparsed dmv regexpjes (vars, if/else statements, || en && operators, php functies etc) en gereturned. De geparste files worden in een php file gebuffered.

Dmv de $data_location array, kan React gebruik maken van templates-per-nivo, dus een andere template voor een topic in category 3 dan in de default etc.

Ik wil dit ooit nog eens naar een stackbased parser (oid) omzetten, zodat ik kan echo'en in een output buffer.

Klaar voor een nieuwe uitdaging.


Acties:
  • 0 Henk 'm!

  • MisterData
  • Registratie: September 2001
  • Laatst online: 29-08 20:29
Ik heb zelf een stackbased template-parser geschreven :) Hij's gratis en opensource (zlib/pibpng license). Als je CVS hebt, kijk dan op http://tplphp.sourceforge.net. Anders is het script van 600 regels te downloaden op www.codebase.nl. Ik haal er zeer goede resultaten mee. Het script ondersteunt constructies zoals:

code:
1
2
3
4
5
6
7
8
[foreach array="blaat" as="b"]
%b$ <br/>
[if expr="%b%==5"]
hij is 5!
[else]
niet 5.
[/else]
[/if]


[/code]

enz. enz.

Acties:
  • 0 Henk 'm!

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Ik gebruik een opgevijzelde versie van de oeroude phplib. Die vind ik goed genoeg werken, alhoewel je natuurlijk de geavanceerde functies van bijvoorbeeld smarty mist. Dat de templatedesigner nog heel veel kan doen met smarty, is natuurlijk op zich handig, maar de meeste templatedesigners snappen het toch niet, en dan komt het weer op de programmeur aan.

Acties:
  • 0 Henk 'm!

  • mocean
  • Registratie: November 2000
  • Laatst online: 04-09 10:34
Verwijderd schreef op 22 June 2003 @ 15:32:
[...]


Kun je mij ook vertellen of dit lekker werkt met veel database werk?
Nou je kan caching instellen zodat hij helemaal geen DB meer gebruikt als ie een pagina in de cache vind. Maar je kan (met een kleine tweak). Ook zaken binnen een template niet-cachen (door {ncache} iets {/nocache} te gebruiken). Dus je frontpage wordt bijvoorbeeld heel snel (doordat al het nieuws wordt gecached), maar je bepaalde stukjes cached ie niet (zoals bijv. een poll).

Smarty compiled templates ook echt. Dus hij hoeft op het moment dat jij een pagina aanroept geen replace meer te gaan doen. Al je 'tags' zijn al gereplaced door PHP .

Op de Smarty site vind je wel links naar artikelen over hoe het in elkaar zit.

Koop of verkoop je webshop: ecquisition.com


Acties:
  • 0 Henk 'm!

  • Mithrandir
  • Registratie: Januari 2001
  • Laatst online: 13-09 21:40
Linkje op PHPpatters over templates

Wat denken jullie van dat artikel? Het zegt dat een template systeem eigenlijk onnodig is. Een ingewikkeld systeem, zoals MisterData hierboven post, wat heeft dat toe te voegen? Waarom zou je in godsnaam loopjes in je template hebben? Zoiets hoort toch niet in je template...
Verder wordt in het artikel de nadruk gelegd op het verschil tussen scheiding van HTML en PHP vs. scheiding van 'business logic' en 'presentation logic'.

Wat is jullie visie hierop?

Verbouwing


Acties:
  • 0 Henk 'm!

  • rig0r
  • Registratie: Juli 2001
  • Laatst online: 11-03 16:08
Niet mee eens, het grote voordeel is toch dat je code en opmaak kunt scheiden, wat het geheel beter beheerbaar maakt. Daarnaast kan je ook iemand die geen php kennis heeft, maar wel html kennis, aan de opmaak laten knutselen.

Ik ben het wel met em eens dat je je templates niet te uitgebreid moet maken, m.a.w. dat je template in feite een complexe programmeertaal wordt, dan ben je weer terug bij af. Maar voor het simpel replacen van bepaalde variabelen of het presenteren van database results in een tabelletje is het prima.

PS, kennen jullie patXMLRenderer ? Is compleet XML based. Iemand ervaring daarmee ?
Pagina: 1