"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)

framework

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.

Response: restituire l'output e visualizzatori

Dom, 23/03/2014 - 19:54 -- arturu

Molto spesso nelle applicazioni web si utilizzano diversi tipi di output, dal classico html al json, xml, css, js ecc. Ogni volta che si deve restituire un output, generato da un determinato input, ci si deve sempre preoccupare degli stessi problemi: validazione, sicurezza, permessi ecc, questo tipo di controlli vanno fatti anche quando dobbiamo restituire dei dati in formato json o xml.

Una prima impostazione di sicurezza: applicazioni pubbliche

Lun, 17/03/2014 - 01:25 -- arturu

Affronteremo un argomento facile, attualmente avviamo le applicazioni rivolte al pubblico tramite l'url: "http://dominio/App/ecc/ecc". Questo modo di procedere nasconde un'insidia, un attaccante protrebbe inserire nell'url il nome di un'app privata e l'autoload l'avvia, es. con "http://dominio/Concerto/ecc/ecc" viene avviato il Core in loop. Questo problema lo risolviamo semplicemente con un file di config in cui inseriamo l'elenco delle app che possono essere avviate tramite url.

I primi moduli: Sessione, Locale, Request, Routing e App

Dom, 09/03/2014 - 18:38 -- arturu

Nel precedente articolo siamo arrivati al momento in cui dobbiamo sviluppare i primi moduli del Core, in questo articolo ci concentreremo sullo sviluppo dei seguenti moduli: Sessione, per gestire la sessione; Locale, per gestire l'internazionalizzazione; Request, per ricevere le richieste; Routing, per gestire le richieste; infine, App per eseguire la specifica richiesta. Inoltre, per far comunicare le diverse parti del framerwork dobbiamo fare una piccola modifica ad "/app/Concerto/Config.php".

Abstract singleton

Dom, 19/01/2014 - 22:33 -- arturu

Come detto precedentemente siamo arrivati al punto in cui dobbiamo costruire i diversi gestori: sessione, locale, routing, eccetera. Anche queste classi devono essere istanziante una sola volta, tanti singleton per intenderci. Dato che non è una cosa buona scrivere tante volte lo stesso codice dobbiamo fare in modo di scriverlo una sola volta. Se ci ricordiamo, tra le linee guida, al primo punto avemo stabilito: "...

Gestione delle Eccezioni

Dom, 19/01/2014 - 14:40 -- arturu

La gestione delle Eccezioni ci permette di avere degli strumenti molto agili nella gestione degli errori. In PHP ormai è un argomento conosciuto e strausato, come prima cosa estendiamo la classe "Exception" di PHP, così successivamente possiamo personalizzare la gestione degli errori come meglio ci piace, e aggiungiamo un blocco tray/catch nell'index.php.

/app/Concerto/Eccezione.php

Namespaces

Sab, 18/01/2014 - 02:18 -- arturu

Il concetto è molto semplice, una prima idea ce la siamo fatta con "Autoloader.php". Senza fare acrobazie filosofiche, molto praticamente, possiamo immaginare il namespace come un percorso, il percorso relativo alla cartella che contiene la classe. Attualmente dichiariamo e istanziamo le classi nel seguente modo:

Pagine

Abbonamento a RSS - framework