Configuration de Zend_Db

Pour commencer, il nous faut configurer Zend_Db. Rien de plus simple, cette classe possède une méthode factory qui accepte deux arguments: le type de base de données à utiliser, et un tableau de paramètres. Il faut ensuite spécifier à Zend_Db_Table que nous souhaitons utiliser cette instance précise de Zend_Db.

$params = array(
	'host' => 'localhost',
	'username' => 'root',
	'password' => 'someobscurepassword',
	'dbname' => 'myappname'
);
$db = Zend_Db::factory('PDO_MYSQL', $params);
Zend_Db_Table::setDefaultAdapter($db);

Opérations CRUD de base

Il suffit d'étendre la classe Zend_Db_Table pour obtenir un Modèle spécifique à notre table de membres:

class Members extends Zend_Db_Table {

}

C'est tout ? Oui, c'est tout. Une fois ceci fait, nous pouvons manipuler la table très simplement, par exemple, pour insérer une ligne:

$member = new Members;

$data = array(
	'mail' => 'geoffrey@nevra.net',
	'password' => md5('password'),
	'created_on' => date('Y-m-d H:i:s'),
);

$member->insert($data);

En plus de la méthode insert, Zend_Db_Table implémente les méthodes update et delete, ainsi que find, qui s'utilisent ainsi (en admettant que le champs mail soit déclaré comme étant la PRIMARY KEY de la table):

$member = new Members;

$db = $member->getAdapter();
$where = $db->quoteInto('mail = ?', 'geoffrey@nevra.net');

$data = array(
	'password' => md5('other_password'),
);

$row = $member->find('geoffrey@nevra.net');
$member->update($data, $where);
$member->delete($where);

Voilà pour les fonctionnalités de base, nous verrons une prochaine fois comment étendre les fonctionnalités de Zend_Db_Table pour, entre autres, automatiser certaines taches :-)