TempLight 0.2

Door M Ypma, 15 jaar geleden, 2.121x bekeken

TempLight is een template handler die dezelfde functionaliteiten biedt die PHP zelf ook zou bieden, want... PHP is hier gewoon de parser, zoals het hoort!
Ik zat iig niet te wachten op nog een diepere generatie taal.

Wat zijn de voordelen ten opzichte van procedurele code of smarty:

- Data wordt veilig weggezet tot de template wordt weergegeven.
- Leesbaarheid van je code, er is duidelijk te zien welke data is bedoeld voor je template en welke voor je programmeer logica.
- Geen vertraging van je script omdat het templates moet uitlezen en parsen.

Voor meer informatie en download:
http://weblog.michelypma.com/php/templight/

Voorbeeld bevindt zich onder de klasse

Voorbeeld: http://weblog.michelypma.com/php/templight/

Gesponsorde koppelingen

PHP script bestanden

  1. templight-02

 

Er zijn 22 reacties op 'Templight 02'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Joren de Wit
Joren de Wit
15 jaar geleden
 
0 +1 -0 -1
Misschien handig om er ook even een voorbeeldje bij te doen van hoe een template er dan uit komt te zien?

Hoe zit het verder met de functionaliteit? Ik heb er nog niet goed naar gekeken, maar zo op het eerste gezicht lijkt het me niet dat dit ook maar in de buurt komt van de functionaliteit die bijvoorbeeld Smarty biedt.
Ericbruggema x
ericbruggema x
15 jaar geleden
 
0 +1 -0 -1
Zou ook moeilijk gaan Blanche, maar zou ook fijn zijn als je blocks kunt gebruiken en dat is helaas nu niet het geval, gewoon vars naar template
Joren de Wit
Joren de Wit
15 jaar geleden
 
0 +1 -0 -1
Quote:
Zou ook moeilijk gaan Blanche
Hoezo? Dat is natuurlijk prima te realiseren, alleen zul je natuurlijk wel wat meer dan 260 regeltjes code nodig hebben...
Lode
Lode
15 jaar geleden
 
0 +1 -0 -1
smarty is 170kb... zou heel knap zijn als je dat in een paar 100 regels krijgt.
En dan komt de vraag weet... hoeveel gebruik je er eigenlijk van?
Er is ook een light variatie van smarty bijvoorbeeld, die nagenoeg het zelfde kan.

Ik heb gewoon php in mijn templates ZONDER eval(); en lng geen 170kb lib iig..
Nagenoeg een 10e...

Wat wil je, wat verwacht je, wat gebruik je... Alle functionaliteiten van smarty? Denk het niet... Maar goed blijft een persoonlijke keuze... Maar laten we gewoon geen appels met peren gaan vergelijken iig...
Kalle P
Kalle P
15 jaar geleden
 
0 +1 -0 -1
Quote:
so lets build an caching system in it!

a
Joren de Wit
Joren de Wit
15 jaar geleden
 
0 +1 -0 -1
@Lode: natuurlijk, dat zal ik ook zeker niet tegenspreken. Maar het ging mij meer om deze uitspraak van Ypma bij de template parser tutorial:
Ypma:
Ik heb er 2 dagen terug 1 geschreven, en ik zweer je, die biedt je net zoveel mogelijkheden als Smarty. En is vele malen sneller. En doet geen dingen die niet nodig zijn... ik zal hem even in de scriptlib plaatsen
En als ik dit dan zie vraag ik me toch af hoe al die functionaliteiten er dan in verwerkt zijn.

Wat je verder zegt over smarty: je kunt hem natuurlijk zelf zover strippen als je wilt. Gooi alle voor jou overbodige functies (lees: bestanden) overboord en de complete lib kun je zo met tientallen kb's reduceren.

Maar goed dit is nog maar v0.1 van TempLight, dus een kans krijgt het zeker. Maar ik ben wel benieuwd hoe een template file er nu uit zou moeten komen te zien. Een voorbeeld is dus nog steeds welkom.
Bo az
Bo az
15 jaar geleden
 
0 +1 -0 -1
Het idee achter een singleton methode gecombineerd met een public constructor en een clone mogelijkheid ontgaat me even?
Lode
Lode
15 jaar geleden
 
0 +1 -0 -1
Ach ja...

Ik heb er nog niet eens naar gekeken eigenlijk... Maar zijn zo vaak dezelfde discussies...

ik haal mijn geparste templates iig op met __toString(){}
welke vervolgens eventueel weer door een class gaan die 'extends tidy'.
en/of een class die bijvoorbeeld caching regelen.
Meestal strip ik alle whitespaces ook nog na tidy.. Word net als googlemaps een block code waar je bijvoorbaad al hoofdpijn van krijgt en die net iets minder bandbreedte kost en een browser net zo snel kan lezen...

ik gebruik variabele-variabele in mijn templates om een klein tipje van de sluier te lichten... Maar dan wel gedefineerde!

EDIT:
ontbreekt mij wel geheel aan voorbeelden en documentatie bij je code overigens... Serverside maakt dat bijna geen fluit uit iig...
M Ypma
M Ypma
15 jaar geleden
 
0 +1 -0 -1
Mijn excuses voor de toch minimale informatie hierbij. Dit had beter gekund.
De uitspraak bij ik maakte bij het "Template parser tutorial" sta ik trouwens nog steeds achter... ik biedt alle functionaliteiten van smarty, en die functionaliteiten die overbodig zijn zijn er niet meer... geen parsing...dus ook geen caching meer...

Ik wil even wat misverstanden recht zetten:

Quote:
Hoe zit het verder met de functionaliteit? Ik heb er nog niet goed naar gekeken, maar zo op het eerste gezicht lijkt het me niet dat dit ook maar in de buurt komt van de functionaliteit die bijvoorbeeld Smarty biedt.

Waarom niet?... je templates bestaan gewoon uit php syntax, hier zijn alle variabelen vrijgegeven die jij hebt toegwezen.
Quote:
Zou ook moeilijk gaan Blanche, maar zou ook fijn zijn als je blocks kunt gebruiken en dat is helaas nu niet het geval, gewoon vars naar template

waarom is dit niet mogelijk? je kunt gewoon andere templates includen in je template... ook hier zijn deze variabelen aanwezig.
Quote:
Ik heb gewoon php in mijn templates ZONDER eval(); en lng geen 170kb lib iig..
Nagenoeg een 10e...

ik nog minder en ook geen eval...
Quote:
Het idee achter een singleton methode gecombineerd met een public constructor en een clone mogelijkheid ontgaat me even?

mij ook, deze is erdoorheen geslopen, zal hem zo snel mogelijk aanpassen.

Voorbeeld wordt er nu bij geplaatst, deze bevindt zich trouwens ook in de download
Lode
Lode
15 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
                $obj
= __CLASS__;
                $instance = new $obj;
?>


kan je ook gewoon:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
                $instance
= new self;
?>


doen...
M Ypma
M Ypma
15 jaar geleden
 
0 +1 -0 -1
@Lode
Kan ook... wat je wilt:)

Verder geen andere feedback meer? Dan mag ik ervanuit gaan dat iedereen voorzien is van voldoende informatie?
Onbekend Onbekend
Onbekend Onbekend
15 jaar geleden
 
0 +1 -0 -1
Op zich een goed idee omdat php idd al goed kan parsen. Maar is het ook mogelijk om for's enzo te doen? En whilen? If?

Btw, een template parser is voor een designer die geen raad weet met php of niet goed. Waarom zou je dan weer php gaan gebruiken voor de templates.
M Ypma
M Ypma
15 jaar geleden
 
0 +1 -0 -1
@Tommy
je kunt alles doen want je normaal in php ook kunt doen... dus ook z'n language constructs als for, while, if enz...

Quote:
Btw, een template parser is voor een designer die geen raad weet met php of niet goed. Waarom zou je dan weer php gaan gebruiken voor de templates.

Stel dat dat zo is...waarom kan een designer dan wel in een nieuwe syntax een: {foreach from=$var key=foo item=bar}
html
{/foreach}
en niet in php:
foreach( $var as $foo => $bar ) {

}
meerwaarde daarvan ontgaat me even
M Ypma
M Ypma
15 jaar geleden
 
0 +1 -0 -1
*bump*
Zijn er nog op of aanmerkingen? Ook wacht ik nog op een reactie van de volgende personen:
Blanche, zijn de functionaliteiten en mogelijkheen je nu wel duidelijk?
Tommy, Zou je nog een reactie willen geven op mijn vraag?
ericbruggema, je hebt dus de beschikking over alle language constructs
Esther
Esther
15 jaar geleden
 
0 +1 -0 -1
Men is toch niet vergeten dat PHP zelf in principe al een template engine is? De enige toegevoegde waarde van Smarty is misschien het caching systeem, maar dat zou in TempLight gebouwd kunnen worden.

Welke functionaliteiten zijn er in Smarty te vinden die niet in PHP zitten?

Designers horen geen HTML en CSS te maken, daarvoor hebben we Online Programmers nodig... Designers moeten designen... Een Online Programmer die wel loopjes zou kunnen maken in Smarty en niet in PHP? Tuurlijk... Wat een onzin.

Het enige dat ik eigenlijk mis is een goed opgezette mogelijkheid om te cachen. Ik weet zeker dat Ypma dat er nog wel in gaat bouwen.

Grtz
M Ypma
M Ypma
15 jaar geleden
 
0 +1 -0 -1
@Esther
Bedankt voor je reactie. Je begrijpt precies wat ik heb willen bereiken met deze klasse. Een caching mogelijkheid zal er zeker nog wel inkomen. Echter is deze pas van meerwaarde bij grotere projecten. Voor kleinschalige websites zal ik het afraden om dat files openen, uitlezen en sluiten en wegschrijven toch voor de nodige vertraging zorgt.
Esther
Esther
15 jaar geleden
 
0 +1 -0 -1
@Ypma
Zodra er een database bij komt kijken is caching al meteen interessant. Uiteindelijk wordt bij een database request ook het filesysteem aangesproken... Behalve als de hele database in het geheugen staat en dan slaat cachen waarschijnlijk nergens op...
Frank -
Frank -
15 jaar geleden
 
0 +1 -0 -1
Esther schreef op 29.02.2008 12:01:
Welke functionaliteiten zijn er in Smarty te vinden die niet in PHP zitten?
PHP heeft functies die niks met templates te maken hebben en die zorgen voor ernstige problemen met bouwen, debuggen en onderhouden van een website. Geef een programmeur een hamer en hij zal de boel voor je slopen. Alleen jammer dat dit nu net niet de bedoeling was...

Ik ben ooit gruwelijk op m'n bek gegaan met een prachtige PHP-template engine, maar die fout maak ik nu echt nooit meer! Smarty of XSLT worden nu gebruikt en men krijgt geen enkele, maar dan ook geen enkele mogelijkheid om met PHP-functies te klooien. Diegene die daar zelfs maar aan durft te denken wordt direct vanaf 11 hoog op straat geschopt!

Just another road to disaster...
M Ypma
M Ypma
15 jaar geleden
 
0 +1 -0 -1
@pgFrank
Ik ben dat totaal met je eens. Aand de andere kant kun je natuurlijk ook zeggen...schoenmaker blijf bij je leest. Waarom zou ik een designer me templates laten maken?
Hij hoort een html en css te maken... dat ik hem in me template dynamisch wil maken is mijn taak. Het is niet de fout van de Template Handler dat hij stuk kan, maar door de gebruiker. Iemand met kennis van zaken weet als het goed is waar hij mee bezig is.
Iets parsen om de reden dat me designer de website stuk kan maken vind ik totale onzin:)
Frank -
Frank -
15 jaar geleden
 
0 +1 -0 -1
Een template-engine wil je gebruiken voor je templates en niet voor je businesslogica. Wanneer het technisch mogelijk is dat er businesslogica in je templates komt, zal dat ook gebeuren. Ik spreek uit ervaring, helaas.

Dat heeft dus niks te maken met een designer die met dynamische html bezig is, maar alles met het scheiden van je businesslogica en presentatie. Ook een PHP-programmeur wordt met bv. Smarty of XSLT gedwongen om de businesslogica elders af te handelen, dat zal niet werken in de presentatielaag.

Dat er daarnaast ook nog eens minder stuk kan gaan, dat is weer mooi meegenomen.
M Ypma
M Ypma
15 jaar geleden
 
0 +1 -0 -1
@pgFrank
Be-aam ik... maar dan weer even wat stappen terug: Smarty weerlegt die programmeer-logica ook niet. Rest dus nog mijn veronderstelling dat deze Template Handler dezelfde funtionaliteiten biedt, maar dan sneller, als Smarty, ook al is het in princiepe appels met peren vergelijken.
Ik vind het template parsen idee totaal overbodig.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
M Ypma
M Ypma
15 jaar geleden
 
0 +1 -0 -1
Ik heb een nieuwe versie geplaatst waar eerdere opmerkingen in verwerkt zijn. Tevens heb ik er een klasse bij gemaakt die, indien zo geconfigureerd, een compressie loslaat op de HTML output.

Mvg Michel Ypma

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. templight-02

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.