Mirmo Dynamics

Si tu kiffes pas reunoi, t'écoutes pas et puis c'est tout.

To content | To menu | To search

Keyword - controlleurs

Entries feed - Comments feed

Tuesday 31 October 2006

Howto: Utiliser Zend_Controller_RewriteRouter avec Zend_Config

Comme je le disais plus bas, le Zend Framework Preview 0.2.0 est dans les bacs ! Cette nouvelle mouture apporte son lot de nouveautés, et nous allons nous pencher sur une des plus interressantes: le RewriteRouter. Le RewriteRouter est un routeur pour le composant MVC du Zend Framework qui va nous permettre de configurer nos URL comme dans Ruby on Rails, c'est à dire (en gros), via un fichier de configuration, et c'est là que Zend_Config entre en jeu.

Continue reading...

Saturday 16 September 2006

Débuter un projet: un brin d'organisation

Architecture des dossiers

Commençons par le commencement: le stockage des fichiers. Pour ne pas trébucher sur la longue route que représente l'accomplissement d'un projet, il convient de bien s'organiser dès le début, et savoir précisément où stocker et trouver les choses est une bonne chose. Nous allons donc nous baser sur les recommandations de Zend à ce sujet:

monprojet/
     app/
          controllers/
          models/
          views/
     library/
     www/

A partir de là, on peut faire évoluer un peu. J'ai personellement rajouté un répertoire dist/, qui contient les scripts nécessaire à la distribution de mon application (dump des bases SQL par exemple), et cet article de Rob parle de répertoires comme scripts/ (pour contenir les scripts cron par exemple) et tmp/ (à toutes fins utiles).

Enfin, notons l'utilité d'un répertoire library/ext/ ou assimilé, comme expliqué ici.

Définir ses controlleurs et ses vues

Première question a se poser: qu'est-ce qu'un controlleur ? Un controlleur, c'est tout simplement une entité qui va s'occuper de traiter une requête que reçoit l'application. Dans le Zend Framework, les controlleurs possèdent des Actions (sous formes de méthodes), qui permettent d'avoir des URL telles que:

http://example.com/foo/bar/

Dans un tel cas de figure, Zend Framework ira chercher la méthode barAction du controlleur fooController. On voit dès l'ors l'interet de bien définir nos besoins en termes de controlleurs dès maintenant, puisque c'est cela qui définira toute l'architecture de l'application. La marche à suivre est la suivante:

  • Lister toutes les fonctionnalitées de l'application
  • Les regrouper logiquement
  • Traduire tout ça en termes de controlleurs et d'action

Prenons l'exemple typique d'un portail d'actualité. Voici quelques unes des actions que nous serons susceptibles de proposer:

  • Ajouter une news
  • Lister des news (action par défaut)
  • Voir les détails d'une news
  • Ajouter un commentaire

Ce qui se traduit par:

  • controlleur News
    • action Ajouter (url: news/ajouter/)
    • action Lister (url: news/lister/)
    • action Voir (url: news/voir/id/$id)
  • controlleur Commentaires
    • action Ajouter (url: commentaires/ajouter/news/$id)

Cela nous permet donc de prévoir l'arborescence suivante:

app/
        controllers/
                CommentairesController.php
                IndexController.php
                NewsController.php
        views/
                Commentaires/
                        ajouter.php
                Index/
                        index.php
                News/
                        ajouter.php
                        lister.php
                        voir.php

Voilà pour la théorie, pour la pratique, il faut mettre en place un environnement d'execution dans lequel on pourra déployer toutes la puissance du Zend Framework, c'est ce que nous verrons la prochaine fois :-)