Ce billet va vous présenter comment préparer vos dossier, vos fichiers et vous éclairer sur l’organisation de tous vos composant en vu d’utiliser le framework de Zend.
Nous allons commencer par télécharger la dernière version du framework à cette adresse.
L’organisation des dossiers de fait comme ceci :
Nous remarquons que nous mettons en place 3 dossiers principaux :
Avec cette organisation, nous avons une application claire et très simple à utiliser.
Dans le dossier application, nous avons 3 dossiers (controllers, models et views) qui vont servir pour la mise en place du MVC de Zend.
Nous reviendrons sur ces 3 dossiers un peu plus tard dans le billet.
A la racine, vous devez ajouter un fichier index.php, qui va démarrer le framework et un fichier .htaccess qui va réécrire vos adresse.
Voici ce que vous devez mettre dans la fichier .htaccess :
RewriteEngine on RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
Et voila le code de l’index.php commenté :
// On met le rapport d'erreurs pour afficher toutes les erreurs
error_reporting(E_ALL|E_STRICT);
date_default_timezone_set('Europe/Paris'); // On met un timezone par défaut
// On change la variable de php des chemins d'inclusions
// On met le dossier library (tous les éléments de Zend) et le dossier des models
set_include_path('.'
. PATH_SEPARATOR . './library'
. PATH_SEPARATOR . './application/models/'
. PATH_SEPARATOR . get_include_path());
// Chargement de la classe de chargement de classe
include "Zend/Loader.php";
// Méthode magique de PHP5 et implémentation personnel qui permet de
// charger les classes que le script a besoin pour fonctionner.
function __autoload($fonction){
Zend_Loader::loadClass($fonction);
}
try{
// On lance le framework
// On prend une instance du controlleur frontal
$frontController = Zend_Controller_Front::getInstance();
$frontController->throwExceptions(true); // On affiche les erreurs
// On spécifie le répertoire ou sont stocké vos classes de controlleurs
$frontController->setControllerDirectory('./application/controllers');
// On démarre !
$frontController->dispatch();
}catch (Exception $e){
// Si on a une erreur (exception), on l'affiche
echo $e -> getMessage();
}
Dans le dossier application, j’ai ajouter 2 fichiers, un .htaccess qui interdit de visiter ce dossier et un fichier config.ini qui contient les informations générales de mon application comme les informations de connexion à la base de donnée.
Approchons nous maintenant sur le MVC de Zend et l’organisation des classes.
Le MVC se décompose en module (nom de controlleur; par exemple index) et en action (nom d’une méthode du controlleur; par exemple indexAction).
Le classes du controlleur doivent porter le même nom que la page que vous voulez créer; par exemple, vous voulez créer une page Index (www.votresite.com/index), le controlleur se nommera IndexController.php et le voici un exemple de code (commenté) :
// La class IndexController pour le module Index
// qui étend de la classe de base de controlleur
class IndexController extends Zend_Controller_Action {
function indexAction(){ // On crée la méthode de la page index
$this -> view -> numero = 1; // On assigne une variable à la vue
}
}
Le controlleur effectue toutes les actions logique en faisant appelle au model ou au classes intégré à Zend.
Le fichier vue doit se trouver dans le repertoire application/views/scripts/nomDuControlleur(ici index)/nomDeLaction.phtml(ici index.phtml).
Voici le code du fichier index/index.phtml :
< ?php echo $this -> numero; ?>
Prenons 2 exemple simple : deux controlleurs (IndexController et ContactController) qui ont 2 méthode chacun (indexAction et sendAction).
Pour accéder à la page index du module index on notera : http://www.monsite.com/ et c’est tout ! ou alors http://www.monsite.com/index/index ce qui n’est pas optimisé.
Pour accéder à la page send du module index on notera : http://www.monsite.com/index/send.
Pour accéder à la page send du module contact on notera : http://www.monsite.com/contact/send.
Enfin pour accéder à la page index du module contact, on notera : http://www.monsite.com/contact.
Efficace non?
Le model est une classe que vous nommé comme vous voulez et qui effectue des actions spécifiques. Par exemples, une classes modèles nommé commentaire peut très simplement faire des requêtes sur la base de donnée ( un billet suivra sur les modèles et les accès aux données).
« Zend Framework, un framework MVC en PHP | Zend Framework et la réécriture d’url pour une page spécifique »
Un trackback
2 commentaires
Franck
11 juin 2009 à 16:46
1Salut, cela fait peu de temps que je me suis tournée vers le zend framework et son apprentissage et je cherchais des infos claires et simples pour bien debuté. J’ai trouvé
. merci
tokio
27 octobre 2010 à 17:19
2Salut à tous j’ai pris connaissance du framework zend et je voudrais bien commencé mais je ne sais par ou commencé alors je voudrais que vous orrientez un débutant comme moi . mon email letokio@yahoo.fr . merçi
Laisser un commentaire
Devenir Fan de Dator.fr
Nuage de tags
Sponsors
Blogoliste
Blogs Amis