L'helper è un insieme di funzioni PHP che restituiscono in output codice HTML da utilizzare nei template. Ad esempio, nel Listato 9 la funzione link_to()
è un helper che potremmo utilizzare per gestire determinati collegamenti.
Listato 9: Un esempio di funzione helper
function link_to($text, $url) { return '<a href="'.$url'.">'.$text.'</a>'; }
La funzione degli helper è sostanzialmente quella di accelerare il processo di scrittura dei template e di produrre un codice HTML facilmente accessibile e con buone prestazioni. Alcune funzioni helper sono già disponibili in ogni template senza necessità di dichiarazione e possono essere raggruppati nelle seguenti categorie.
Categoria | Descrizione |
---|---|
Helper | Necessario per includere gli helper: la funzione utilizzata per l'inclusione degli helper è essa stessa un helper |
Tag | Tag di base |
Url | Funzioni per la gestione dei link e delle URL |
Asset | Funzioni utilizzate per popolare le sezioni <head> dell'HTML e fornisce un aiuto per collegare elementi esterni quali immagini, javascript, CSS e così via |
Partial | Funzioni per gestire la suddivisione di un template in più parti |
Cache | Funzioni per la gestione dei frammenti di codice memorizzato in cache |
Form | Funzioni per la gestione delle form di input |
Attraverso il file di configurazione settings.yml presente all'interno della directory config di ogni applicazione è possibile definire una lista di gruppi di funzioni di helper da rendere disponibili per tutti i template. È sufficiente aggiungere il nome del gruppo riportato nella tabella appena vista alla variabile standard_helpers
.
È necessario osservare però che i gruppi evidenziati in tabella (Helper, Tag, Url e Asset) sono sempre e automaticamente inclusi di default da Symfony e, dunque, non è necessario inserirli nella lista standard_helpers né è possibile non includerli nei template.
In ogni caso è sempre possibile richiamare una funzione di helper da qualsiasi template, anche se appartiene ad un gruppo non incluso nel file settings.yml. Basta infatti includere nello specifico template il gruppo di helper nel quale è contenuta la funzione che si vuole richiamare utilizzando il metodo loadHelpers()
della classe sfLoader
(contenuta in libsymfonyconfig):
sfLoader::loadHelpers('nomeGruppoHelpers');
dove nomeGruppoHelpers è il nome del gruppo di helpers che contiene la funzione da utilizzare.
Symfony mette a disposizione una grande quantità di funzioni di helper ampiamente documentate e comunque offre la possibilità di aggiungere nuove funzioni personalizzate qualora ce ne fosse bisogno. Se si dovesse avere questa necessità è sufficiente scrivere la nuova funzione di helper in un file con un nome del tipo nomeGruppoHelper.php, dove nomeGruppo è il nome del gruppo di funzioni di helper che si vuole aggiungere, e salvare il file in appsNomeApplicazionelibhelper o in qualsiasi directory helper situata all'interno della directory lib del progetto. Fatto ciò il gruppo di funzioni di helper può essere utilizzato dai template dopo averlo incluso con la seguente riga:
use_helper('nomeGruppo');
Ricordiamo che le funzioni di helper sono scritte in PHP e devono restituire come risultato una stringa formattata in HTML.