Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 48
  1. #1

    template engine un po' complesso

    Buondì (skidx connesso prima di mezzogiorno VVoVe: )

    sto sviluppando, per un sistema di gestione weblog, un template engine apposito. Non è il classico template engine che prende le variabili e le sostituisce con i vari preg_* eregi_* o eval, è una cosa un po' più complessa, per esempio in base a quello che c'è nel template devo decidere quali dati prendere dal database, quindi per questo e per altri motivi devo per forza fare una sorta di "compilazione" del template, cioè leggerlo, beccare i tag speciali, interpretarli (e dedurre i dati che servono) e sostituirci del codice php dentro (per poi mandare in esecuzione la versione "compilata").

    Naturalmente questi tag del template sono alternati a semplice testo.
    al momento io per ogni sostituzione apro e chiudo i tag php, e il risultato è la classica pagina con html misto a php.
    In termini di performance esiste un metodo migliore?
    Non so, magari prendere le parti di testo e schiaffarle dentro un echo in modo da avere un'unica modalità php, o qualcos'altro.
    Chiedo a voi perché magari qualcuno ha già fatto di questi test.

    La seconda domanda riguarda impedire che nel template venga messo del codice php, io semplicemente ero dell'idea di parsare i vari tag di apertura/chiusura php, poi ho letto questa cosa nel changelog di Smarty che mi ha messo un po' in guardia:
    a vulnerability was discovered that allows PHP code to be executed from within a template file, even with the template security features enabled.

    - fix handling of hashed opening php-tags inside strip-blocks (messju)
    Che cavolo è questo "hashed opening php-tags?

    Mi devo spulciare il codice di smarty o qualcuno ne sa già qualcosa?

    Grazie

  2. #2
    non so aiutarti per smarty perche' non l' ho mai usato ma posso dirti che scrivere php dentro l' html con tanti apri
    <?php e chiudi ?> e' parecchio meno performante di un unico echo ...

    io lavoro , solitamente con un solo echo a fine script che manda in output tutto quello che c'e' da mostrare tramite una sola variabile ... cerca di fare altrimenti, fatti un array kiavi valori delle cose da sostituire, effettua il php prima di compilare la pagina, stampa compilata con un solo echo su str_replace ( ArrayKIAVI, ArrayVALORI, pagina )

    penso sia il metodo piu' semplice, ma se tu hai necessita di "compilare" col codice perche' le pagine sono dinamiche e quindi e' fondamentale lasciare il codice php al loro interno, non so proprio come potresti risolvere, chissa' che un ob_start con flush o gzhandler possa velocizzare in qualche modo il tutto ?
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    [supersaibal]Originariamente inviato da andr3a
    cerca di fare altrimenti, fatti un array kiavi valori delle cose da sostituire, effettua il php prima di compilare la pagina, stampa compilata con un solo echo su str_replace ( ArrayKIAVI, ArrayVALORI, pagina )[/supersaibal]
    non mi sembra sia possibile per la natura del template, ci sarebbero cicli (anche annidati), if, chiamate a funzioni da eseguire al momento della richiesta, non devo solo copincollare delle variabili dentro un html.

    Usare le funzioni ob_ quindi mi dici che potrebbe migliorare le prestazioni?

  4. #4
    [supersaibal]Originariamente inviato da skidx
    Usare le funzioni ob_ quindi mi dici che potrebbe migliorare le prestazioni? [/supersaibal]
    in teoria gli handlers rallentano l' interpretazione di una pagina php perche' la mettono in cache e poi la "sputano" al client, ma nel caso ci siano tante chiamate a <?php potrebbe essere meglio utilizzarli ... non penso tu abbia alternative visto che l' utilizzo di un eventuale eval sarebbe oltre che ancora piu' lento estremamente pericoloso ...

    aspettiamo altri pareri, tipo quello di Fabio Heller
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    ok, resto in attesa.
    Intanto grazie

  6. #6
    le funzioni ob sicuramente fanno al tuo caso

    oltretutto il tempo di latenza generato dal buffer dell'output è compensato dalla possibilità di zippare il risultato

    le pagine html zippate sono leggerissime, l'utente probabilmente ne guadagna

  7. #7
    [supersaibal]Originariamente inviato da bubu77
    le pagine html zippate sono leggerissime, l'utente probabilmente ne guadagna [/supersaibal]
    a discapito del server ... il punto e' che non so se sia meglio zippare tutto e usare handlers per questo specifico caso o se semplicemente e' un di piu' oltre il carico aggiunto dalle tante <?php e ?> ... boh !!!

    ma un po' tests skidx no ???
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  8. #8
    [supersaibal]Originariamente inviato da andr3a
    ma un po' tests skidx no ??? [/supersaibal]
    Beh, speravo li avesse già fatti qualcuno di voi, se nessuno ne sa di più mi toccherà farmeli da me

  9. #9
    guarda che eval è ultra performante e basta ricostruirsi i template ed è estremamente performante e flessibile

  10. #10
    [supersaibal]Originariamente inviato da andr3a
    a discapito del server ... il punto e' che non so se sia meglio zippare tutto e usare handlers per questo specifico caso o se semplicemente e' un di piu' oltre il carico aggiunto dalle tante <?php e ?> ... boh !!!

    ma un po' tests skidx no ??? [/supersaibal]
    a discapito del server non saprei, mi piacerebbe fare qualche test, è vero che lo script php "pesa" di + ma alleggerisci il lavoro al webserver che invia un file minore.

    Questo forum se non sbaglio utilizza questo sistema (non sono sicuro) e anche con server non adeguato non si comporta poi tanto male

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.