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"
Successivamente modifichiamo "/App/Concerto/Response.php" in modo da porter salvare i dati di output e la vista da utilizzare
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
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"
"/App/Test/viste/xml/articolo.php"
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"
In "/App/Render/html/App.php" le modifiche sono poche in quanto estende xml.
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.