Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Template engine: utilità??

    Stò lavorando su un interessante progetto e mi stò domandando se vale la pena costrure un sistema di template utilizzando le classi di Smarty, il mio dubbio è:

    visto che il sito dovrà gestire molti utenti online (almeno 1.000) l'utilizzo del template engine mi porterà rallentamenti??


  2. #2
    Rispetto al php embedded nell'HTML sicuramente si, ma ti porterà anche enormi vantaggi nella gestione del tutto.

    Piuttosto fai qualche ricerca e vedi se trovi eventualmente template engine più adatti alle tue esigenze
    Addio Aldo, amico mio... [03/12/70 - 16/08/03]

  3. #3
    Utente di HTML.it L'avatar di Umanista
    Registrato dal
    Jan 2002
    Messaggi
    1,022
    Mi sto avvicinando ora ai template engine. Mi pare di intuire che tutti comunque compromettano un pò le prestazioni. Tuttavia mi pare che tali template engine permettano anche di gestire la cache dei file, giusto? Facendone buon uso si potrebbero comunque ottenere buoni risultati su siti con molti accessi?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Questo articolo
    http://www.phppatterns.com/docs/desi...mplate_engines
    Mi convinse al tempo a non usare più i template engines, o meglio, mi convinse ad usare template engines creati da me con poche funzioni basilari di facile e rapida esecuzioni (ciclo, if, variabili e basta). Il concetto espresso è a mio avviso correttissimo

    Che differenze ci sono tra
    Codice PHP:
    <div><?php echo $var?></div>
    e
    Codice PHP:
    <div>{$var}</div
    ?
    Ben poche. Forse risparmi qualche digitazione
    Quando poi il "linguaggio" del template engine, diventa molto complesso, con tanto di definizioni di funzioni "user_defined" e similari, si finisce per avere un nuovo "mini linguaggio" di programmazione e chi deve usare quel template engine deve quindi essere quasi un programmatore... tanto vale che si studi il php
    Senza contare il fatto che abbiamo un interprete php, che interpreta uno script php che ha il compito di interpretare uno "script in linguaggio template"... il che rallenta ovviamente le prestazioni

    C'è un motivo che A MIO AVVISO può rendere l'uso di un template engine necessario:
    Non si vuole permettere al destinatario del template engine di inserire codice php per alcun motivo, per paura che faccia danni

    Se però siamo noi stessi ad utilizzare il template engine... tanto vale sostituire (ipotetico linguaggio per template)
    Codice PHP:
    <loop variabile:valore>
      <
    div>{$valore}</div>
    </
    loop
    con del normale codice php
    Codice PHP:
    <?php foreach($variabile as $valore) {?>
      <div><?php echo $valore?></div>
    <?php ?>
    Forse hai scritto qualche carattere in più, ma le prestazioni, in pagine più complesse, sono sicuramente migliori e rimetterci solo per la pigrizia di non scrivere codice ben strutturato è a mio avviso poco saggio

  5. #5
    Utente di HTML.it L'avatar di Umanista
    Registrato dal
    Jan 2002
    Messaggi
    1,022
    Mi hai convinto...
    Anche perché ho sempre fatto come dici tu

    Ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Un altro difetto A MIO AVVISO molto brutto di molti template engine è quello di "pretendere" che i cicli vengano effettuati solo su "array"
    Quando effettuiamo un query piuttosto grosso (che tira fuori molti dati) il template engine ci costringe ad effettuare una cosa tipo
    Codice PHP:
    $queryarray= array();
    while(
    $row mysql_fetch_assoc($result))
      
    $queryarray[] = $row
    Per poi dare l'array $queryarray "in pasto" al template engine che sarà tipo
    Codice PHP:
    <loop $queryarray:$riga>
      
    // elaborazione
    </loop
    Se però il query estrai parecchi dati, andiamo a caricare molto la memoria con un array piuttosto "pesante", quando invece con un semplice ciclo
    Codice PHP:
    while($riga mysql_fetch_assoc($result))
    {
      
    // elaborazione

    Avremmo sempre e solo UNA SINGOLA riga in memoria, lasciando che il mysql si occupi di mantenere i dati pronti per noi

    Ovviamente si tratta di opinioni personali e altre persone possono trovare dei vantaggi nei template engine che io non trovo

  7. #7

    ..............

    Ciao.
    Il parere di Leilond mi trova d'accordo
    sopratutto per i progetti di piccole dimensioni
    con l'utilizzo di questa
    simple template class
    si riesce con una buona progettazione OOP alla base
    nel mio nuovo progetto (un semplice blog che ha
    però la sua forza nel poter utilizzare sia un DB sia
    semplici file XML) una cosa del genere nella index:
    Codice PHP:
    //QUI SOPRA CI SONO  LE ISTANZE DELLE VARIE CLASSI
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title><?php echo implode("&raquo;",$breadcrumbTitle); ?></title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <link type="text/css" rel="stylesheet" href="css/main.css" />
    </head>
    <body>
    <div id="container">
        <div id="header"><h1>Bloggerino</h1></div>
        <div id="intro">
            <h2>
            The blog that runs
            with different type of fuel.
            </h2>
        </div>
        <div id="extra">
            <h5><?php echo $nPosts?></h5>
            <ul><?php echo $lastPosts?>[/list]
            <ul id="public">
                [*][url="rss/feed.xml"][img]img/rss_button.png[/img][/url]
            [/list]
        </div>
        <div id="content">
            <h6><?php echo implode("&raquo;",$breadcrumbContent); ?></h6>
            <?php echo $contentOutput?>
            <?php echo $random?>
        </div>
        <div id="footer">

    By Whisher</p></div>
    </div>
    </body>
    </html>
    e nei blocks per esempio:
    Codice PHP:
    <div class="article">
    <
    h3>[url="{path}?read={id}"]{title}[/url]</h3>
    <
    class="author">{author}</p>
    <
    class="posted">{posted}</p>
    <
    class="preamble">{article}</p>
    </
    div
    Il che ti permette di separare il codice php
    dal codice xhtml con minimo sforzo.


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.