15 Ott 2012

Lo Zend Framework è un potente set di classi e funzionalità che può risultare minaccioso per la sua complessità e per il rigore che può richiedere una sua implementazione nei vostri script.
Molti componenti di Zend invece si prestano ad essere utilizzati senza alterare eccessivamente il vostro modo di programmare.
Personalmente ho goduto di un sollievo incommensurabile utilizzando le funzioni che Zend offre per dialogare con i database. Dopo una corretta configurazione di Zend e avergli permesso di accedere al vostro DB, effettuare query può essere estremamente semplice.
Il primo passo è quello di creare una classe che incapsuli una delle vostre tabelle instanziando una classe apposita di Zend:

class Zend_Tabella extends Zend_Db_Table_Abstract
{
protected $_name = 'nome_mia_tabella';//Questa stringa deve corrispondere al nome esatto della vostra tabella
protected $_primary = 'id_tabella';//dichiarazione chiave primaria necessaria

}

Disponiamo ora di una classe che Zend potrà utilizzare per interrogare il database. Vediamo come utilizzarla.

$table = new Zend_Tabella(); // Instanziamo la tabella e assegnamola ad una variabile
$table_name = "nome_mia_tabella"; // Dichiariamo il nome della tabella
$order_by = "id_tabella"; // Passiamo il nome del parametro da utilizzare per la nostra query

// Definizamo ora una procedura select di base popolandola con le variabili dichiarate in precedenza
$select_base = $table ->select()
->from($table_name)
->order($order_by)
->setIntegrityCheck(false);

// Eseguiamo la query e conserviamola in una variabile
$rows = $table->fetchAll($select_base);

$array_rows = $rows->toArray();

Fatto! Ora la nostra variabile $rows conserva un oggetto zend_db_table_rowset contenente le righe recuperate… se ce ne sono! Vediamo ora come effettuare un semplice controllo per capire cosa abbiamo recuperato.

if ($rows)
{
$numero_elementi_totali = $rows->count(); // Conserviamo il numero totale delle righe recuperate
if ($numero_elementi_totali // Non è stato recuperato nulla
} else {
$array_rows = $rows->toArray(); // Per poterle utilizzare più facilmente, convertiamo le righe recuperate in un array standard
}
} else {
// c'è stato un errore
}

Questo è solo un punto di partenza ma può rendere l’idea di come Zend possa semplificare processi tediosi dal codice non riutilizzabile in blocchi più concisi, leggibili e che possono essere riutilizzati con facilità.
Per approfondire: