PHP  »  Articoli  »  Zend Framework 

Accesso ai database in PHP con lo Zend Framework

di: Gabriele Farina     15 Giugno 2006

L'ultima (e fino ad ora l'unica) volta che abbiamo trattato lo Zend Framework in questa sede abbiamo focalizzato la nostra attenzione sul modulo Zend_Controller, che espone una serie di funzionalità che facilitano l'implementazione e la manutenzione di applicazioni web aderenti al pattern MVC. Oggi voglio spostarmi in un campo differente e parlare delle soluzioni proposte dal framework per la gestione dei database.

PHP ha un buon supporto per i database, ma ha il difetto di fornire troppe soluzioni alternative per attuare l'interfacciamento con i server di dati. In mezzo a questa quantità veramente enorme di classi e funzioni mi pare una buona scelta optare per una via univoca da perseguire in tutti i propri applicativi. La soluzione migliore è sicuramente quella di affidarsi ad un layer di astrazione potente e funzionale, che ci permetta di interfacciarci con sistemi diversi ed architetture differenti; PHP offre un paio di buone soluzioni a questo proposito, che sono PDO ed SDO. 

La seconda soluzione, di cui parleremo in modo più approfondito in un'altra sede, offre anche funzionalità per accedere univocamente ad altre fonti di dato, quale l'XML. La prima invece si focalizza solamente sui database e, anche se con qualche bug di troppo non ancora risolto, offre una buona serie di funzionalità. La soluzione proposta dallo Zend Framework si basa appunto su questa libreria, che cerca di migliorare con l'aggiunta di interessanti routine di utilità.

Il modulo Zend_Db

Il modulo Zend_Db rappresenta il layer di astrazione basato su PDO utilizzato dal framework per accedere ai database. L'utilizzo di PDO come libreria nativa permette al layer di astrazione di fornire l'accesso a tutti i sistemi di database supportati dalla libreria stessa. Tra questi ricordiamo MySQL, PostgreSQL, Microsoft SQL Server, SQLite ed altri. La creazione di un oggetto per interfacciarsi ad un database è eseguita tramite l'utilizzo del pattern factory:

Connessione ad un db tipo MySQL

<?php

/* Presuppongo che il Framework Zend sia nel vostro include_path */
require_once 'Zend/Db.php';

// Opzioni di connessione
$options = array ('host'     => '127.0.0.1',
                 'username' => 'utente',
                 'password' => 'password',
                 'dbname'   => 'test');

$db = Zend_Db::factory('pdoMysql', $options);

?>

La funzione statica factory della classe Zend_Db accetta come parametri una stringa rappresentante il driver di connessione che si desidera utilizzare ed un array di opzioni specifiche per il driver e necessarie per connettersi correttamente alla fonte di dati richiesta. Se per esempio avessimo voluto connetterci ad un database SQLite, che non richiede l'autenticazione e l'utilizzo di un server, avremmo utilizzato il codice seguente:

Connessione ad un db tipo SQLite

<?php

require_once 'Zend/Db.php';

$options = array ('dbname' => 'test');

$db = Zend_Db::factory('pdoSqlite', $options);

?>

Il risultato di queste operazioni è un'implementazione specifica del driver utilizzato dell'interfaccia Zend_Db_Adapter_Abstract. Tramite questa interfaccia è possibile accedere alle funzionalità aggiuntive fornite dal framework e ad alcune delle funzionalità esposte da PDO.

Guide PHP

Guida Yii Framework

Come creare applicazioni Web in modo semplice e veloce con il...

Guida Zend Framework

Diventate professionisti dello sviluppo Web. Zend Framework è lo...

Guida Applicazioni Facebook con PHP

Come realizzare un'applicazione per Facebook. Dalle basi della...

Altre guide

Newsletter @PHP

Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso PHP per Webmaster

11 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti