Heeej,

Ik had gister een idee om (ik denk) snel websites te kunnen maken. Hier is de download link : download

De index.php ziet er als volgt uit:

<?php
include_once("lib/Website.class.php");
include_once("lib/Position.class.php");
include_once("lib/Module.class.php");
include_once("lib/Database.class.php");

//MODULES
include_once("modules/Tekst.php");
include_once("modules/Menu.php");
include_once("modules/LoginForm.php");

//MAAK VERVINDING MET EEN DATABASE
Database::Connect("localhost","root","","social");

//START WEBSITE
$website = new Website('Dennis Sluijk - Home');
$website->addStylesheet('style/style.css');
$website->addJavascript('lib/javascript/jquery.js');
$website->addJavascript('lib/javascript/dynaload.js');

//MAKE MENU
$mainmenu = new Menu();

$home = new MenuItem('Home','index.php','');

$informatie = new MenuItem('Informatie','informatie.php','');

$informatiesub = new Menu();
$informatiesub->addMenuItem(new MenuItem('Honden','#',""));
$informatiesub->addMenuItem(new MenuItem('Katten','#',""));

$informatie->addMenu($informatiesub);

$mainmenu->addMenuItem($home);
$mainmenu->addMenuItem($informatie);

//MAKE LOGIN FORM
$loginform = new LoginForm();

$left = new Position('left');
$left->appendModule($mainmenu);
$left->appendModule($loginform);

$tekst = new Tekst('Test test TEKST TEKST IPSUM DINGEN');

$content = new Position('content');
$content->appendModule($tekst);

$main = new Position('main');
$main->appendPosition($left);
$main->appendPosition($content);

//APPEND POSITIONS
$website->appendPosition($main);


echo $website->fetch();

?>

Je kan natuurlijk het menu enzovoorts opslaan in een appart bestand die je dan bij de volgende pagina bijvoorbeeld cats.php alleen hoef te includen. Het uiteindelijke doel van het systeem is zodat je dingen kan hergebruiken

hier is een download link voor alle bestanden: download

Mij vraag is wat jullie er van vinden
Wat heb je aan het cachen van een template als je dan geen variabelen meer kan gebruiken?
En wat is überhaupt het voordeel van het genereren van html (zeker als je DOM niet dynamisch is).
Die Template classe heeft niets met het bovenste te maken. Maar bijvoorbeeld als ik een pagina heb waar de content in de database staat maakt hij het er een hardcode html pagina van stel ik heb 1000 bezoekers op de pagina per dag dan hoef je niet elke keer een aanvraag naar de database doen.

PS. De bovenste 2 klassen Template en CachedTemplate zijn voorbeelden die ongeveer het zelfde doen als Smarty.

[size=xsmall]Toevoeging op 23/08/2011 20:41:11:[/size]

SLOTJE graag
Smarty en al op template gebaseerde websites zijn fun als je maar een klein aantal gebruikers hebt.
Hebben jullie ooit weleens de broncode die smarty genereert bekeken?
Als ik van zo`n soort cms de broncode weergeef is die over de 4000 regels!
Kan iemand mij de beste manier van programmeren vertellen?
Smarty maakt de broncode precies zoals je zelf zegt dat ze moeten worden.
Jacco Brandt op 23/08/2011 22:40:47

Smarty maakt de broncode precies zoals je zelf zegt dat ze moeten worden.


Jah ik vond ook al zo raar :S
Ik ben ook geen voorstander van Smarty. Het is zeker en vast mooi, maar vaak te uitgebreid. Ik ken genoeg programmeurs die het gebruiken die hun CSS, JavaScript, en zelfs hun HTML minifien. Maar ooh jee, als je hun verteld dat Smarty eigenlijk veel meer opslokt, terwijl ze slechts er 10% van gebruiken.

Dus een eigen template-parser vind ik in dat opzicht zeker een meerwaarde. Ik zou er dus zeker mee verder gaan. Maar overdrijf niet...


    $website->addStylesheet('style/style.css');
    $website->addJavascript('lib/javascript/jquery.js');
    $website->addJavascript('lib/javascript/dynaload.js');


Waarom? Gewoon in een header.tpl standaard inzetten. Evt zou je bepaalde stukjes script kunnen uitschakelen door een IF-structuur in je template-parser te bouwen.

{$IF_JS}
laat wat script in
{/$IF_JS}

addIf('if_js', true);
Hmm, ik heb het nagekeken, en smarty zorgt inderdaad voor een extra hoeveelheid code. Ik zal deze parser dus toch eventjes gaan doorspreken met mijn collega.

Maar kan de extra waarde op de site wel echt kwaad, de hoofdzakelijke snelheid zit in dit geval toch in het 'downloaden' van de site, iets waarvoor het minifien toch nog wel nut heeft?
Jacco Brandt op 24/08/2011 12:30:13

Hmm, ik heb het nagekeken, en smarty zorgt inderdaad voor een extra hoeveelheid code. Ik zal deze parser dus toch eventjes gaan doorspreken met mijn collega.

Maar kan de extra waarde op de site wel echt kwaad, de hoofdzakelijke snelheid zit in dit geval toch in het 'downloaden' van de site, iets waarvoor het minifien toch nog wel nut heeft?


Jah idd veel zal het niet uitmaken.
Ik vindt Smart van grote toegevoegde waarde als je werkt in een team met ontwikkelaars waarbij een duidelijke scheiding is tussen frontend en backend ontwikkelaars. Qua parsetijd scheelt minify'en e.d. zeker meer als Smarty. Smarty verbruikt ongeveer 0.3s van je pagina. Veel sites kunnen hele seconden besparen door plaatjes te comprimeren, javascript, HTML, etc.

Maargoed in combinatie met ZendFramework vindt ik Smarty minder een succes.

Reageren