Comment l'utiliser.
Téléchargement.
Si le site propose de créer un compte pour pouvoir télécharger, il faut le faire cela prend moins d'une minute.
Installation.
L'archive du framework se présente sous deux formes :
Les composants sont dans "library/Zend/"
Il suffit de copier le dossier Zend et son contenu sur le serveur à l'emplacement des bibliothèques serveur.
Il faut mettre à jour la variable codice_1 du codice_2.
Configuration Apache.
Apache doit avoir le mod_rewrite présent et activé (a2enmode rewrite) ainsi que d'autoriser les directives par .htaccess : « AllowOverride » sera à « All » dans le fichier de configuration du site.
<Directory /var/www/monblog/html>
 DirectoryIndex index.php
 AllowOverride All
 Order allow,deny
 Allow from all
</Directory>

S'initier au Zend Framework/Mini blog/Modèle

Création dans la base de données.
Exemple de création de base de données MySQL :
CREATE USER 'monblog'@'localhost' IDENTIFIED BY 'monblog';
GRANT USAGE ON *.* TO 'monblog'@'localhost' IDENTIFIED BY 'monblog';
CREATE DATABASE IF NOT EXISTS `monblog` ;
GRANT ALL PRIVILEGES ON monblog.* TO 'monblog'@'localhost';
Exemple de création de table :
CREATE TABLE nouvelle (
 id INT NOT NULL auto_increment,
 titre VARCHAR(200),
 corps TEXT,
 categorie_id INT,
 heuredate DATETIME,
 PRIMARY KEY (id)
La table étant créée il nous faut configurer l'application pour pouvoir y accéder.
Voici, un exemple de configuration pour accéder à la base, il est aussi possible de centraliser la configuration dans un fichier séparé (XML, ini, etc).
Placez les paramètres de connexion dans la fonction initDb() de l'initialiseur du bootstrap (application/Bootstrap.php) :
 /**
 * Initialize data bases
 * @return void
 public function initDb()
 $params= array ( 'host' => '127.0.0.1',
 'username' => 'monblog',
 'password' => 'monblog',
 'dbname' => 'monblog');
 try {
 $db= Zend_Db::factory('PDO_MYSQL', $params);
 Zend_Db_Table::setDefaultAdapter ( $db );
 } catch ( Exception $e ) {
 exit ( $e->getMessage () );
 Zend_Registry::set ( 'dbAdapter', $db ); // accessible partout
Il est aussi possible de spécifier les paramètres de base de données dans le fichier application/configs/application.ini
Le modèle.
ZF a choisit par défaut la correspondance objet-SQL vers Table(voir aussi : ORM), c'est-à-dire qu'une table SQL est un objet Zend_Db_Table, une ligne est Zend_Db_Table_Row et plusieurs lignes Zend_Db_Table_Rowset.
Pour ajouter cet objet placez-vous dans le dossier application/default/models, puis créez le fichier Nouvelle.php - n'oubliez pas la majuscule - (avec Zend Studio cela se fait par : bouton-droit New/Zend Framework Item/Zend Table) :
class Nouvelle extends Zend_Db_Table_Abstract {
 protected $_name = 'nouvelle';
Le framework va interroger la base pour connaître les méta-informations associées à la table et de ce fait il va trouver 'id' dans le cas de cette table mais on peut la spécifier avec $_primary.
Le modèle créé, nous allons le charger dans son contrôleur et ensuite des actions.
Sinon, on peut créer un modèle à l'aide de Zend Tool à la racine du projet faire
zf create db-table Nouvelle nouvelle
Ce qui va créer un fichier Nouvelle.php placé dans l’arborescence application\models\DbTable contenant :
<?php
class Application_Model_DbTable_Nouvelle extends Zend_Db_Table_Abstract
 protected $_name = 'nouvelle';

S'initier au Zend Framework/Mini blog/Contrôleur

Le contrôleur.
Les actions par défauts seront la lecture d'une nouvelle, son ajout, sa modification, son effacement et le listing de toutes les nouvelles.
Ses différentes actions sont accessibles directement par l'URL :
Par défaut, c'est le routeur qui réécrit l'URI et redirige vers la bonne action.
Le paramêtre « id » avec la valeur « 1 » sera accessible dans l'action. Idem pour :
Nous verrons ensuite plus comment personnaliser le routeur pour obtenir une URI plus lisible pour l'humain et les moteurs de recherche.
Ce nouvel URI a un titre écrit en français et en clair, c'est pour cela que l'optimisation pour les moteurs de recherche (SEO) peut se faire en parallèle du développement des fonctionnalités d'un site.
Avant d'écrire ses actions, la première chose est de charger l'objet dès que l'on instancie le contrôleur. Cela se fait dans le « constructeur » init().
NB: init() aulieu de __construct() permet de ne pas appeler le constructeur de la super-classe. Sans redéfinition, init() est appelée sans aucun paramètre comme dernière instruction de __construct().
Notre objet devrait s’appeler Nouvelle comme l'objet qu'il manipule mais il aurait fallu voir immédiatement l'objet Router pour la réécriture d'URL. Ainsi pour des raisons pratiques, le contrôleur s’appellera Index, car dans le monde du web, l'index est la première chose affichée d'un site. 
class IndexController extends Zend_Controller_Action 
 private $_nouvelles;
 public function init()
 $this->_nouvelles= new Nouvelle();
 $this->view->headTitle('Mon blog');
L'objet est chargé et accessible depuis la variable privée de classe $_nouvelles.
Les actions Create Read Update Delete (CRUD).
Nous avons un contrôleur par objet, l'application va dans un premier temps créer les actions de base : c'est à dire :
ajouter (create), lire (read), mettre-à-jour (update), effacer (delete)
Cette liste d'action est plus connues sous l'acronyme CRUD (Create, Read, Update, Delete) auxquelles on peut rajouter :
lister tous les objets (index)
mettre à jour une liste d'objets (updatelist)
effacer une liste d'objets (deletelist)
Ces actions couvre le spectre des actions possible pour un objet mais l'application se devra aussi de pouvoir ajouter une nouvelle action ou d'invalider une existante.
L'ordre d'explication des actions sera croissante en difficulté :

S'initier au Zend Framework/Mini blog/Actions