Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

CakePHP: PHP per il Web 2.0

Introduzione al framework CakePHP: l'ambiente di sviluppo di applicazioni Web in PHP modellato su Ruby on Rails
Introduzione al framework CakePHP: l'ambiente di sviluppo di applicazioni Web in PHP modellato su Ruby on Rails
Link copiato negli appunti

Il logo di CakephpCon questo articolo iniziamo ad esaminare uno dei framework per PHP che ha raccolto in questi ultimi mesi il favore di molti sviluppatori: CakePHP. Dopo aver trattato alcuni interessanti punti del framework MVC ufficiale sviluppato dalla Zend (lo Zend Framework), vediamo oggi come la comunità open source cerca di stare al passo con i tempi e l'evoluzione dello sviluppo basato sul Web analizzando le funzionalità di questo nuovo e interessante strumento.

CakePHP è uno dei tanti framework nati dall'interessa della comunità di sviluppatori open source verso Ruby On Rails e della successiva necessità di estendere simili strumenti di sviluppo anche ad altri linguaggi. Il progetto nasce nel 2005 come semplice framework per lo sviluppo rapido di applicazioni. Inizialmente utilizzato da Michal Tatarynowicz, il suo sviluppatore principale, per i lavori quotidiani, il progetto ha riscosso un notevole successo ed è stato successivamente rilasciato sotto licenza MIT e ha assunto il nome di CakePHP.

Come molti altri suoi simili il framework si basa fortemente sul modello MVC (Model View Control) e segue pienamente i canoni del web 2.0: un'attiva comunità, una licenza molto flessibile che si adatta a gran parte degli ambiti di lavoro, strumenti per lo sviluppo rapido ed una serie di utilità per integrare facilmente Ajax nelle proprie applicazioni.

Oltre a queste funzionalità il framework è stato corredato da un sistema di template molto flessibile, strumenti per la serializzazione dei dati ed il caching dei risultati delle richieste e soprattutto è compatibile sia con PHP 4 sia con PHP 5.
In questo articolo introdurremo brevemente al framework e vedremo il processo di installazione, mentre nei prossimi ci addentreremo in operazioni specifiche più interessanti per mostrare le potenzialità del sistema.

Installazione del framework

Prima di iniziare a sviluppare con CakePHP è necessario installarlo su proprio sistema. I file possono essere scaricati liberamente dal sito di CakePHP attraverso CakeForge, un'applicazione simile a SourceForge che offre però solamente progetti inerenti a CakePHP. Una volta scaricato il file compresso contenente i sorgenti, è necessario controllare che il proprio sistema abbia i requisiti necessari per far funzionare CakePHP:

Una volta accertati che i requisiti richiesti siano pienamente soddisfatti, è possibile procedere con l'installazione; esistono due differenti configurazioni per l'installazione, una consigliata per lo sviluppo e l'altra per gli ambienti di produzione. Prima di continuare però è necessario dare uno sguardo a come è strutturato il filesystem di CakePHP in modo da poter comprendere meglio eventuali configurazioni avanzate necessarie. Lo faremo nella prossima pagina.

La struttura del filesystem di CakePHP, una volta decompressi i sorgenti, è la seguente:

/app
   /config
   /controllers
       /components
   /models
   /plugins
   /tmp
   /vendors
   /views
       /elements
       /errors
       /helpers
       /layouts
       /pages
   /webroot
       /css
       /files
       /img
       /js
   /index.php
/cake
/docs
/vendors
/index.php

La struttura del filesystem è ben gerarchizzata:

  • /app/config
  • /app/controllers
  • /app/models
  • /app/views
  • /app/vendors
  • /cake
  • /app/index.php /app

Tornando quindi al processo di installazione, nel caso vi troviate nella prima situazione è possibile decomprimere i sorgenti all'interno della cartella di root specificata nella configurazione del Web server.

Nel caso in cui invece si debba operare in un ambiente di produzione è consigliato installare CakePHP in una directory indipendente e configurare il Web server in modo che la cartella di root corrisponda a /path/di/cakephp/app/webroot.

Qualunque sia l'opzione selezionata è comunque possibile distribuire le directory di CakePHP all'interno del filesystem in base alle proprie esigenze; potrebbe essere per esempio necessario mettere la libreria core in una cartella condivisa per ogni host installato, oppure posizionare in modo indipendente la cartella contenente i controller o quella contenente i file statici accessibili via Web.

Per poter effettuare opportunamente queste modifiche è necessario modificare manualmente il file index.php presente all'interno della directory /app/webroot:

<?php

// ...


/** La directory di root contenente i controller,
* i file di configurazione, le viste ...
*/

define('ROOT', '/path/alla/direcotry/di/root');

/** La directory webroot, che deve essere comunque specificata
* come Document Root all'interno del file di configurazione
* del Web server.
*/

define('APP_DIR', '/var/www/mywebroot');

/** La directory che contiene il core della libreria
* di Cake.
*/

define('CAKE_CORE_INCLUDE_PATH', '/usr/lib/cake');

// ...


?>

La configurazione iniziale

Prima di iniziare a testare il framework è necessario configurare a dovere il Web server, l'accesso ai database e le opzioni globali.

Web server

Per quanto riguarda la configurazione del Web server è possibile abilitare mod_rewrite ed utilizzare il file .htaccess fornito all'interno dell'installazione standard per poter utilizzare URL puliti e chiari da leggere che non facciano uso di query string. Il file .htaccess fornito dovrebbe andar bene per tutte le esigenze, a patto che la cartella che si è deciso impostare come DocumentRoot abbia abilitata la possibilità di sovrascrivere le regole di configurazione.

Database

Successivamente è necessario configurare l'accesso al database. Per fare questo bisogna modificare il file app/config/database.php.default e rinominarlo in database.php, modificando i valori dell'array $default definito all'interno del file in modo che corrispondano alle proprie esigenze.

Un accorgimento da tenere in considerazione è il fatto che le tabelle definite all'interno del database utilizzato devono seguire alcune regole affinchè CakePHP le gestisca in modo corretto:

  • I nomi devono essere in plurale inglese (articles
  • tutte le tabelle devono avere una chiave primaria chiamata id
  • le chiavi esterne utilizzate per costruire le relazioni tra le tabelle devono essere nomiate utilizzando il singolare della tabella a cui fanno riferimento seguito da _id article_id
  • è possibile includere i campi created modified

Opzioni globali

Infine, presi questi accorgimenti, è possibile modificare le opzioni di configurazione globale di CakePHP reperibili all'interno di app/config/core.php; ogni singola opzione è anticipata da un commento descrittivo esplicativo che ne spiega l'utilità:

  • DEBUG pr debug
  • CAKE_SESSION_COOKIE
  • CAKE_SECURITY high medium low
  • CAKE_SESSION_SAVE cake app/tmp php php.ini database

Conclusioni

Abbiamo concluso il primo articolo su CakePHP introducendo brevemente il framework e spiegando come procedere con l'installazione. Nei prossimi articoli vedremo come preparare le basi per una nuova applicazione studiando come si implementano i modelli, le viste ed i controller, e successivamente vedremo qualche esempio di implementazione pratica.

Ti consigliamo anche