Créations d’un livre d’or en 6 étapes
- Définition
- Créations des tables sql et des répertoires
- Bases des fichiers
- Affichages et ajout de messages
- Modification et suppression des messages
- Conclusions
Bases des fichiers
Avant tout, il nous faut créer les différents fichier .htaccess
 RewriteEngine on #RewriteBase /serveur/mon_repertoire/ RewriteRule .* index.php php_flag magic_quotes_gpc off php_flag register_globals off
La ligne en commentaire, permet dans le cas d’une erreur de ce type : Fatal error: Uncaught exception ‘Zend_Controller_Dispatcher_Exception’ with message ‘Invalid controller specified (serveur)’ in
 de corriger le problème, pour un accès, par exemple, via : http://localhost/serveur/mon_repertoire/
LivreControllers.php
 <?php /** Zend_Controller_Action */ require_once 'Zend/Controller/Action.php'; class LivreController extends Zend_Controller_Action { 	public function indexAction() 	{ 		echo 'Index du livre d\'or'; 		return; 	} 	public function ajouterAction() 	{ 		$this->view->title .= ' .: Ajout d\'un message'; 		echo 'ajout d\'un message!'; 		return; 	} }
Le controlleur, c’est ce qui va diriger notre application
index.php
 <?php error_reporting(E_ALL|E_STRICT); date_default_timezone_set('Europe/Brussels'); set_include_path('.' . PATH_SEPARATOR . '../site/lib' . PATH_SEPARATOR . './app/models/'  . PATH_SEPARATOR . get_include_path()); include 'Zend/Loader.php'; Zend_Loader::loadClass('Zend_Controller_Front'); Zend_Loader::loadClass('Zend_Config_Ini'); Zend_Loader::loadClass('Zend_Registry'); Zend_Loader::loadClass('Zend_Db'); // load configuration $config = new Zend_Config_Ini('./app/config.ini', 'general'); $registry = Zend_Registry::getInstance(); $registry->set('config', $config); // setup database $db = Zend_Db::factory($config->db->adapter,  $config->db->config->toArray()); Zend_Db_Table::setDefaultAdapter($db); // Régler le dossier des contrôleurs par défaut : $frontController = Zend_Controller_Front::getInstance(); $frontController->throwExceptions(true); $frontController->setControllerDirectory('./app/controllers'); // run! $frontController->dispatch();
Livre.php
 <?php Zend_Loader::loadClass('Zend_Db_Table'); class Livre extends Zend_Db_Table {     protected $_name = 'livre';     protected $_primary = 'id'; 	public function insertObject($object) 	{ 		return parent::insert((array) $object); 	} 	public function updateObject($object, $where) 	{ 		return $this->update((array) $object, $where); 	} }
Le modèle du livre, c’est-à-dire les données -> ici la base des données.
Date.php
 <?php class MyWsp_View_Helper_Date { 	/** 	 * Retourne une date sous forme d'une chaîne, au format donné par le 	 * paramètre format, fournie par le paramètre timestamp ou la date et 	 * l'heure courantes si aucun timestamp n'est fourni. En d'autres termes, 	 * le paramètre timestamp est optionnel et vaut par défaut la valeur de la 	 * fonction time(). 	 * Plus d'info sur http://www.php.net/manual/fr/function.date.php 	 * 	 * @param string $format format de la date 	 * @param int $timestampdate à formaté 	 * 	 * @return string 	 */ 	public function date($format, $timestamp = null) 	{ 		if (!is_nan($timestamp)) 			$timestamp = time(); 		// see http://www.php.net/manual/fr/function.strftime.php 		$dates = array( 			'DDDD'	=> '%A', 			'DDD'	=> '%a', 			'DD'	=> '%d', 			'D'		=> '%e', 			'MMMM'	=> '%B', 			'MMM'	=> '%b', 			'MM'	=> '%m', 			'YYYY'	=> '%Y', 			'YY'	=> '%y', 			'HH'	=> '%H', 			'hh'	=> '%I', 			'mm'	=> '%M', 			'ss'	=> '%S', 		); 		return strftime(str_replace(array_keys($dates), array_values($dates), $format), $timestamp); 	} }
config.ini
 [general] db.adapter = PDO_MYSQL db.config.host = localhost db.config.username = root db.config.password = db.config.dbname = livredor
Contient la configuration pour accéder à la base de donnée du livre d’or.
Test
Rendez-vous à l’adresse de votre script :
- Lire les messages : http://localhost/serveur/mon_repertoire/livre/
- Ajouter un message : http://localhost/serveur/mon_repertoire/livre/ajouter/
Si tout est ok, passons à la suite!