Iniziare con CakePHP
Patty-cake, patty-cake...
Prefazione
Benvenuto nel paradiso dello sviluppo web.
Se stai leggendo la prefazione di un materiale tecnico, mi dispiace ma probabilmente hai un pò troppo tempo libero. Non siamo celebrità, e dato che stai cercando informazioni salta questa sezione e tuffati nel succo del discorso.
Audience
Per poter comprendere questo manuale è richiesta una certa familiarità con PHP. Un minimo di conoscenza della programmazione ad oggetti aiuta, sebbene le prime parti di questo manuale possono supplire in qualche modo. Ciò detto, questo materiale è scritto per sviluppatori di tutti i livelli: chiunque voglia creare applicazioni robuste e gestibili velocemente e divertendosi.
E' bene anticipare che ci saranno sezioni riguardo tecnologie che esulano dagli ambiti di questo manuale. AJAX, Javavascript e la gestione dei web server potrebbero essere nominati qui e là, ma per lo più ci limiteremo a parlare di CakePHP.
Introduzione a CakePHP
Cosa è CakePHP? Perchè usarlo?
CakePHP è un framework per lo sviluppo veloce di applicazioni PHP, gratuito e open-source. E' una struttura su cui i programmatori possono creare applicazioni web. Il nostro obiettivo principale è permetterti di lavorare in modo rapido e strutturato - senza perdità di flessibilità
CakePHP toglie di mezzo la monotonia dallo sviluppo web. Ti mette a disposizione tutti gli strumenti di cui hai bisogno per iniziare a programmare quello che realmente c'è bisogno di fare: la logica della tua applicazione. Invece di reinventare la ruota ogni volta che inizi un nuovo progetto, scarica una copia di CakePHP e parti direttamente dal cuore della tua applicazione.
CakePHP ha un team di sviluppo molto attivo ed una comunità , che fornisce un grande valore al progetto. Oltre a toglierti fuori dalla necessità di "reinventare la ruota", usare CakePHP significa che il core della tua applicazione è testato profondamente e continuamente aggiornato.
Segue una veloce lista delle caratteristiche che avrete il piacere di scoprire utilizzando CakePHP:
- Una comunità attiva ed amichevole
- Active, friendly community
- Sistema di licenza flessibile
- Compatibile con le versioni 4 e 5 di PHP
- CRUD integrato per l'interazione con i database
- Application scaffolding
- Generazione di codice
- MVC architecture
- Request dispatcher with clean, custom URLs and routes
- Built-in validation
- Fast and flexible templating (PHP syntax, with helpers)
- View Helpers for AJAX, JavaScript, HTML Forms and more
- Email, Cookie, Security, Session, and Request Handling Components
- Flexible ACL
- Data Sanitization
- Flexible Caching
- Localization
- Works from any web site directory, with little to no Apache configuration involved
Where to Get Help
Il Cookbook
Hai iniziato nel posto giusto. Questo manuale dovrebbe essere probabilmente il primo posto dove cercare un aiuto. Così come per altri progetti open source abbiamo continuamente nuove persone interessate. Cerca, quindi, di fare del tuo meglio per rispondere alle tue domande in primo luogo da solo. Le risposte potranno essere lente, ma rimarranno a lungo e potranno anche contribuire ad illuminare il nostro lavoro di supporto. Sia il manuale che le API hanno una componente online.
API
Strettamente focalizzata al punto e strettamenta originata dagli sviluppatori del core, la CakePHP API (Application Programming Interface) è la più completa documentazione in circolazione per tutti i complessi ed eleganti dettagli del funzionamento interno del framework. Segue strettamente il riferimento al codice, portatevi... il vostro cappello da hacker!
Il canale IRC
#cakephp @ irc.freenode.net
Se siete in affanno, potete darci un colpo sul canale IRC per CakePHP. Qualcuno del team di sviluppo di solito è presente, particolarmente durante le ore del giorno per gli utenti del Nord e Sud America. Ci piacerebbe conoscere da voi se avete bisogno di aiuto, se ci sono altri utenti nella vostra zona o se, per caso, volete farci dono della vostra nuova auto sportiva!
The Bakery
La "Bakery" è una sorta di stanza di compensazione per CakePHP. Cercate pure per tutorial, casi di studio ed esempi di codice. Ed, una volta che avete acquisito una certa conoscenza di CakePHP, accedete lo stesso, per condividere le vostre conoscenze con la comunità. Guadagnerete all'istante fama e fortuna!
CakeForge
CakeForge è un'altra risorsa per sviluppatori che potete utilizzare per ospitare i vostri progetti CakePHP e per condividerli con gli altri. Se state cercando per (o se volete condividere) un componente chiave o un buon plugin, controllate pure su CakeForge.
Il sito ufficiale di CakePHP
Il sito ufficiale di CakePHP è sempre un buon posto da visitare. Fornisce collegamenti per gli strumenti di sviluppo più utilizzati, screencast, opportunità per effettuare donazioni e download.
Google Group
http://groups.google.com/group/cake-php
CakePHP ha, inoltre, un gruppo su Google molto attivo. Può essere una grande risorsa per effettuare ricerche tra le risposte archiviate, leggere le domande più comuni e per ottenere risposte ai problemi più immediati.
Comprendere il pattern Model-View-Controller
Descrizione
CakePHPsegue il design pattern software MVC. Programmare utilizzando il pattern MVC separa la tua applicazione in tre parti principali::
- Model che rappresenta i dati dell'applicazione
- View che fornisce la presentazione dei dati del modello
- Controller che gestisce ed indirizza le richieste fatte dal client.
Figura 1: Una semplice richiesta MVC
La Figura 1 mostra un esempio, in CakePHP, di una richiesta MVC di base. Per illustrarla, assumeremo che un client denominato "Ricardo" abbia giusto effettuato il click sul link "Compra subito una torta personalizzata!" dell'home page della vostra applicazione.
- Riccardo clicca sul link che punta a http://www.example.com/cakes/buy, ed il suo browser invia una richiesta al vostro web server.
- Il dispatcher controlla la URL di richiesta (/cakes/buy) e l'affida al corretto controller.
- Il controller esegue la specifica logica dell'applicazione. Ad esempio controlla se Ricardo si sia effettivamente loggato.
- Il controller, inoltre, utilizza i modelli per ottenere l'accesso ai dati dell'applicazione. I modelli rappesentano di solito tabelle di database, ma possono anche rappresentare entità LDAP , feed RSS, o file sul sistema. In questo esempio, il controller usa un modello per ritrovare gli ultimi acquisti effettuati da Ricardo sul database.
- Una volta che il controller ha effettuato le proprie "magie" sui dati, li fornisce ad una vista. La vista riceve questi dati e diviene pronta a visualizzarli per il client. Le viste in CakePHP sono di solito in formato HTML, ma una vista potrebbe essere anche un documento PDF, un documento XML , o un oggetto JSON a seconda delle vostre necessità.
- Una volta che la vista ha utilizzato i dati forniti dal controller per creare la presentazione, il contenuto della stessa è inviato al browser di Riccardo.
Quasi tutte le richieste della vostra applicazione possono seguire questo semplice patter. Aggiungeremo in seguito ulteriori dettagli su quali sono specifiche di CakePHP, perciò tenete questo bene a mente mentre procediamo.
Vantaggi
Perchè usare MVC? Perchè si tratta di un design pattern software reale e testato che trasforma una applicazione in un pacchetto manutenibile, modulare e rapidamente sviluppata. Dividere i compiti dell'applicazione in controller, modelli e viste separati renderà la vostra applicazione leggera per quando sarà pronta. Nuove caratteristiche potranno essere facilmente aggiunte e, costruire il nuovo sulla base del vecchio, diventerà un gioco da ragazzi. La progettazione modulare e separata permette, inoltre, di lavorare in simultanea tra sviluppatori e grafici ed include la possibilità di realizzare rapidamente prototipi. La separazione consente anche agli sviluppatori di modificare una parte della applicazione senza avere effetti sulle altre.
Se non avete mai costruito le vostre applicazioni in questo modo, vi prenderà un po' di tempo l'abituarvi a questo modello, ma una volta che avrete costruito la vostra prima applicazioni utilizzando CakePHP, non vorrete più farlo in modo diverso.

login to add a comment