"Se ci sono due o più modi di fare una cosa,
e uno di questi modi può condurre a una catastrofe,
allora qualcuno la farà in quel modo.

(Edward Murphy)

Utilizzare le viste

Mer, 23/04/2014 - 16:30 -- arturu

Nell'ultimo capitolo abbiamo sviluppato i componenti che ci permettono di produrre output in base al tipo di richiesta: html, xml o json; ma, temporaneamente, abbiamo scritto il codice HTML direttamente nell'azione, in questo capitolo vedremo come separare e organizzare ulteriolmente questo aspetto utilizzando le viste (view). La soluzione ottimale è utilizzare l'action per effettuare delle operazioni logiche (es: recuperare i dati da visualizzare) e impostare quale visualizzazione utilizzare per renderizzare i dati. Una visualizzazione (o view) non è altro che una piccola porzione di codice, nella maggior parte dei casi HTML, che serve a presentare soltato i dati inviati dall'action. Dobbiamo anche preoccuparci in che formato l'action invia i dati alla view, il formato più comodo e facile da manipolare è l'array, infatti, nella maggior parte dei casi quando estrarremo dati da una qualsiasi sorgente (database, file, json, xml, ecc) i dati saranno rappresentati in un array, è molto comodo passare quest'array ottenuto a Response in modo che possa essere passato alla view XML, HTML, json, ecc.

Come prima cosa dobbiamo avere dei dati da recuperare, dato che ancora non abbiamo sviluppato un modo per estrarre i dati da un database, possiamo estrarre i dati da un file .yml (poi in seguito vedremo che estrarre dati da un file, database o risorsa esterna è sempre lo stesso concetto). Costruiamo il seguente file "/App/Test/articolo_1.yml"

Vedi Codice Su GitHub

Successivamente modifichiamo "/App/Concerto/Response.php" in modo da porter salvare i dati di output e la vista da utilizzare

Vedi Codice Su GitHub

Aggiorniamo l'action nell'applicazione Test "/App/Test/App.php", in modo che recuperi i dati sottoforma di array, li passi a Response e setti la vista da utilizzare

Vedi Codice Su GitHub

Costruiamo anche viste, le sistemiamo dentro la cartella "viste" nell'applicazione di Test.

Per tutti i tipi visualizzazione che si intende utilizzare, secondo necessità, costruiamo la relativa vista impostata nell'action, "/App/Test/viste/html/articolo.php"

Vedi Codice Su GitHub

"/App/Test/viste/xml/articolo.php"

Vedi Codice Su GitHub

Infine modifichiamo i diversi tipi di render facendo in modo che essi recuperino i dati e li passino alla vista, come formato passiamo sempre un array che chiamiamo "$output", così non dobbiamo preoccuparci di come l'avevamo chiamato nell'action: "/App/Render/xml/App.php"

Vedi Codice Su GitHub

In "/App/Render/html/App.php" le modifiche sono poche in quanto estende xml.

Vedi Codice Su GitHub

Possiamo visulizzare il risultato puntanto su: http://esempio.tld/Test/

Conclusioni

Abbiamo visto che con la giusta organizzazione possiamo presentare in diversi modi un determinato risultato. In futuro non dovremmo far altro che costruire action e viste, tutto il resto sarà riutilizzato, velocizzando e facilitando lo sviluppo.

Nel prossimo capitolo, vedremo come costruire tutto il contorno: il template grafico con la gestione delle diverse aree.

Vedi CommitSu GitHub Scarica questa versione .zip