Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Shika
    Registrato dal
    Jan 2010
    Messaggi
    27

    Funzione Eval: Opinioni e consigli

    'sera a tutti
    più che un aiuto, mi piacerebbe ascoltare suggerimenti e consigli di tutti vuoi
    sto realizzando un sito web, e sono alla fase della creazione di un template (un piccolo template direi ) e al momento utilizzo la funzione eval() per la stampa delle variabili al posto di determinate porzioni del template o per semplici IF/ELSE. Detto questo..data la cattiva reputazione della funzione, secondo il vostro parere, dovrei continuare su questa strada o cercare qualcosa di alternativo?

    Per rendere meglio l'idea..faccio un uso del genere:

    template.html
    codice:
    %IF_PAGE_A%
    #NOME# ciao!
    %ENDIF%
    file.php
    Codice PHP:
    <?php
    $nome 
    ''//Qualcosa da database,filtrato in precedenza
    define('PAGE','a');
    $template file_get_contents("template.html");
    $template str_replace('%IF_PAGE_A','<?php if('PAGE' == 'a') { ?>',$template);
    $template str_replace('#NOME',$nome,$template);
    $template str_replace('%ENDIF%','<?php } ?>',$template);
    $output = eval("?>" .$template');
    ?>
    In nessun caso utilizzo un input dell'utente, solo variabili da database

  2. #2
    Io sono del parere che usare un template engine con PHP sia assolutamente inutile. Crearne un nuovo poi e' ancora piu' inutile.

    PHP da solo e' perfettamente adatto come sistema di template, non vedo la necessita' di introdurre un nuovo linguaggio introducendo una nuova sintassi ed uno step in piu' per interpretarlo.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Mah... eval non è da scartare, ma bisogna stare attenti... dovresti davvero verificare bene tutto... in effetti non ha molta utilità sviluppare una cosa del genere con la mole di "motori" già esistenti, a meno che non ci sia uno scopo specifico (es. didattico) che non so.
    Insomma: per l'uso indicato se c'è uno scopo "produttivo" (es. un lavoro) lo sconsiglierei anch'io perchè si possono usare altri sistemi/librerie/soluzioni pronte.

  4. #4
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Ma perchè usare un template engine quando php stesso è un template engine?

    Perchè in una vista questo

    codice:
    %IF_PAGE_A%
    #NOME# ciao!
    %ENDIF%
    dovrebbe essere più semplice/migliore di

    Codice PHP:
    if(condizionefai questo
    ??

    Per quanto riguardo riguarda eval... la documentazione ufficiale di norma ne sconsiglia l'uso, a meno che non esistano altre soluzioni (che in questo caso ci sono).
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  5. #5
    Utente di HTML.it L'avatar di Shika
    Registrato dal
    Jan 2010
    Messaggi
    27
    Grazie per le risposta,leggendo qui e in giro per internet alla fine ho deciso di abbandonare quest'idea a favore di una gestione più "classica" dei template
    Grazie ancora

  6. #6
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Ma guarda che non è sbagliato usare un template engine ad hoc... prova ne è il fatto che ne esistono molti. Cosi come non è sbagliato crearsi delle semplice funzioni che vadano ad automatizzare alcune cose. Quello che personalmente trovo di dubbia utilità è l'introduzione di nuova sintassi... anche perché spesso si sostiene che i template engines siano utili ai grafici che non conoscono php... ma ora io mi chiedo... a parte il fatto che in un template il codice dovrebbe essere ridotto al minimo e dovrebbe essere funzionale alla sola presentazione... il tempo perso ad imparare la sintassi del t.e., non sarebbe più utile impiegarlo per imparare qualcosina in php puro?
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

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.