Come utilizzare una stringa come template nella quale inserire dei valori

Scusate il titolo un pò fantasioso ma non mi veniva di meglio.

Ho una stringa contenente del codice html e vorrei usarla come template fillandola con dei dati.

C'era una funzione che faceva qualcosa di simile ma non ricordo quale.

Faccio un esempio:

$valori = array ('img.jpg', '100', '200', 'testo di prova');

$template = "<img src='".$var1."' width='".$var2."' height='".$var3."' alt='".$var3."' />";

filla($template, $valori);

In alternativa sapreste consigliarmi un sistema per fare gestire templates?

inviato 8 anni fa
arjuna
X 0 X

mettere il template in un file e poi includerlo con un bel include()?

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Il problema non è l'inclusione ma il fill dei parametri

risposto 8 anni fa
arjuna
X 0 X

all'interno del template puoi usare delle normali istruzioni PHP, magari nella forma breve:

<p><?=$testo?></p>

La variabile $testo deve ovviamente essere settata prima di includere il file di template.

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Si Gianni, questo è l'ABC, e l'ho passato da moto tempo.

Quello di cui ho bisogno io è una struttura che si possa ciclare.

Ho lavorato per un pò con un programmatore veramente in gamba che aveva creato un engine php eccezionale, tutto ad oggetti.

Lui come soluzione aveva adottato una struttura simile:

<!--?nomeFrammento?-->

<a href="<!--?href?-->"><!--?nomeLink?--></a>

<!--?/nomeFrammento?-->

In questo modo io gli fornivo i template e lui li richiamava da php pharsandoli e fillando le variabili necessarie.

Tra un pò mi metterò a studiare Zend Framework sperando di trovare la soluzione ai miei problemi, ma per ora non posso affrontare questo studio...

Correggimi se sbaglio, se conosci soluzioni più idonee sono lieto di apprenderle. Premetto che ho usato anni fa Smarty ma che non ne sono rimasto entusiasta.

risposto 8 anni fa
arjuna
X 0 X

Le possibilità sono 2: usare del normale codice PHP all'interno dei template, oppure usare dei tag personalizzati da parsare con un template engine.

Nel primo caso non sei obbligato ad usare nulla, al massimo potresti studiare un modo per limitare la visibilità delle variabili allo script di template. Lo ZF usa questa tecnica. Anche il template engine Savant usa questo approccio.

La seconda soluzione prevede necessariamente l'uso di un template engine. Non vedo perché dovresti scriverne uno da zero, ce ne sono moltissimi in giro, Smarty è il più complesso ma ce ne sono anche altri:

http://www.whenpenguinsattack.com/2006/07/19/php-template-engine-roundup/

Ripeto, secondo me non ha senso oggi creare un template engine.

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
modificato 8 anni fa
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda