IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MVC PHP Discussion :

Routage et classement des fichiers controlleurs [ZF 1.10]


Sujet :

MVC PHP

  1. #1
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut Routage et classement des fichiers controlleurs
    Bonjour,

    je débute sur l'utilisation de Zend Framework en MVC et j'aurais voulu quelques conseils.
    J'ai un site disposant d'articles rangés dans plusieurs catégories. L'idée est d'avoir une url de ce type, exemple : www.monsite.fr/articles/php/CreerUnSingleton
    Mon site fonctionne selon MVC avec comme controlleur ma catégorie (ici php) et comme action le nom de mon article (ici CreerUnSingleton). Donc pour intercaller la "super categorie" articles j'ai modifié ma route dans mon bootstrap comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $route = new Zend_Controller_Router_Route(
              ':articles/:controller',
              array(
              'articles'   => 'articles',
                  'controller' => 'php',
                  'action'     => 'resume' //affiche par defaut une liste des articles de la catégorie
                  )
                             );
    Mais lorsque je saisie www.monsite.fr/php/CreerUnSingleton je croyais que l'url allait devenir www.monsite.fr/articles/php/CreerUnSingleton, mais non ? Aussi les 2 URL précédentes me renvoient vers ma page mais moi je souhaiterais avoir une URL www.monsite.fr/articles/php/CreerUnSingleton si quelqu'un saisie www.monsite.fr/php/CreerUnSingleton
    Je tiens à classer mes catégories dans cette super catégorie car je possède d'autres "super catégorie".

    De plus, afin de m'y retrouver lorsque les articles seront nombreux j'aurais voulu savoir s'il était possible de ranger les controlleurs associés à mes articles dans un dossier particulier. Ainsi passer de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    - Application
            - models
            - views
            - controllers
                   -PhpController.php
                   -BashController.php
                   -...
            -ContactController.php
    à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    - Application
        - models
        - views
        - controllers
            - Articles
                -PhpController.php
                -BashController.php
                -...
            -ContactController.php
    Merci pour vos lumières
    Mes contributions phares en dev : www.rigaudie.fr

  2. #2
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    Bonjour,

    Je pense que l'idéal pour toi serait de faire une application modulaire.
    Ainsi ta structure serais celle-ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    - Application
        - modules
            - articles
                 - models
                 - views
                 - controllers
                        -PhpController.php
                        -BashController.php
                        -...
           - default
                  - models
                  - views
                  - controllers
                         -ContactController.php
    Ainsi il te sera plus facile de ranger les grandes sections de ton site.
    Pour le routeur, le problème est que tu devra faire une route pour chaque controlleur:

    exemple pour 'www.monsite.fr/php/CreerUnSingleton' tu devra faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $route = new Zend_Controller_Router_Route(
              'php/:article',
              array(
                  'module'   => 'articles',
                  'controller' => 'php',
                  'action'     => 'resume' //affiche par defaut une liste des articles de la catégorie
                  )
                             );
    Sinon une regex aussi pourrait faire l'affaire... '(php|bash)/([-a-zA-Z0-9]+)'
    Le problème étant que tu est un peu obligé d'insérer un indicateur pour trouver ta route car sinon n'importe quelle url te renverra vers :article/:controller

    Je sais pas si je me suis bien fait comprendre.....mais bon c'est le matin je suis pas encore réveillé!
    Les idiots sont ceux qui ne posent jamais de question!

  3. #3
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut
    Citation Envoyé par manuscle
    Je pense que l'idéal pour toi serait de faire une application modulaire.
    J'y est pensé mais le problème est que je vais devoir dupliquer des informations comme views/layouts/layout.phtml, views/common/titre.phtml, views/common/menu_droit.phtml, ... donc pas possible. N'y a t il pas d'autres solutions ?
    Citation Envoyé par manuscle
    Le problème étant que tu est un peu obligé d'insérer un indicateur pour trouver ta route car sinon n'importe quelle url te renverra vers :article/:controller
    La proposition que tu me fait est dans le cas ou j'utilise un module articles et dans ta solution que tu me proposes donne cette URL 'www.monsite.fr/php/articles/CreerUnSingleton' et moi je souhiate celle-ci 'www.monsite.fr/articles/php/CreerUnSingleton'

    Merci pour tes explications
    Mes contributions phares en dev : www.rigaudie.fr

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    L'organisation par module est correcte.

    Pour ton layout.phtml, rien ne t'empêche de le sortir de ton /script/view et le mettre à la racine de apllication.

    /application/layouts/scripts/layout.phtml

    ensuite dans ton config.ini, tu ajoute la ligne suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"

  5. #5
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    Citation Envoyé par Général03 Voir le message
    J'y est pensé mais le problème est que je vais devoir dupliquer des informations comme views/layouts/layout.phtml, views/common/titre.phtml, views/common/menu_droit.phtml, ... donc pas possible. N'y a t il pas d'autres solutions ?
    MaitrePylos à raison, si tu as un layout général tu ne rencontrera pas ce problème.... J'ajouterais même que tu peux avoir un script genre article.phtml que tu peux demander à chaque controlleur de rendre par defaut.

    Citation Envoyé par Général03 Voir le message
    La proposition que tu me fait est dans le cas ou j'utilise un module articles et dans ta solution que tu me proposes donne cette URL 'www.monsite.fr/php/articles/CreerUnSingleton' et moi je souhiate celle-ci 'www.monsite.fr/articles/php/CreerUnSingleton'
    Non pas du tout, si ça ne te dérange pas d'avoir 'articles' en début d'url c'est parfait car tu as juste à faire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $route = new Zend_Controller_Router_Route(
              'articles/:controller/:alias/*',
              array(
                  'module'   => 'articles',
                  'action'     => 'resume' //affiche par defaut une liste des articles de la catégorie
                  )
                             );
    :alias étant l'alias url de ton article, en gros:
    www.toto.com/articles/php/CreerUnSingleton te renverra comme parametres:
    module: articles
    controller: php
    action: resume
    alias: CreerUnSingleton

    le /* à la fin te permet de catcher cette route même si tu insère des parametres supplémentaires à la fin de l'url, tu pourras faire ceci:
    http://www.toto.com/articles/php/Cre...ngleton/page/2
    Les idiots sont ceux qui ne posent jamais de question!

  6. #6
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut
    Citation Envoyé par MaitrePylos
    L'organisation par module est correcte.
    Ok si on peut sortir mes templates je vais utiliser un module articles.
    Citation Envoyé par manuscle
    Non pas du tout, si ça ne te dérange pas d'avoir 'articles' en début d'url c'est parfait
    C'est exactement la route que je veux

    Par contre petite question sur ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $route = new Zend_Controller_Router_Route(
              'articles/:controller/:alias/*',
              array(
                  'module'   => 'articles',
                  'action'     => 'resume' //affiche par defaut une liste des articles de la catégorie
                  )
                             );
    :controller et :alias sont connus dans ZF ? Ou un oubli de configuration dans le array() ?

    Merci
    Mes contributions phares en dev : www.rigaudie.fr

  7. #7
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    Pas tout à fait, ce sont des clé qui sont utilisées comme parametres.

    :controller est connu dans ZF, mais l'ajouter ici permet d'ecraser le controller das la requete
    :alias lui c'est un parametre fait maison, t'aurais très bien pu l'appeler 'toto' ou n'importe...

    Dans le deuxième argument de Zend_Controller_Router_Route, tu précise les valeurs par defaut si une partie de la route n'est pas définie dans l'url....

    Lit la doc Zend_Controller_Router_Route si tu comprend pas ce que j'explique car j'ai un peu de mal aujourd'hui....
    Les idiots sont ceux qui ne posent jamais de question!

  8. #8
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut
    Citation Envoyé par manuscle
    :controller est connu dans ZF, mais l'ajouter ici permet d'ecraser le controller das la requete
    :alias lui c'est un parametre fait maison, t'aurais très bien pu l'appeler 'toto' ou n'importe...
    :controller => c'est à dire que si je tape www.monsite.fr/articles/php j'obtiens www.monsite.fr/articles/ ?
    :alias => ca me sert à quoi ?

    Citation Envoyé par MaitrePylos
    ensuite dans ton config.ini, tu ajoute la ligne suivante

    Code :

    resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts/"
    Ok moi je l'ai mis dans un fichier XML mais le principe reste le même. Par contre j'ai des view identiques sur mes pages (titre, footer, menu...) qui sont appelé dans layout.phtml via partial(). Donc je pensais les mettre dans /application/views/scripts/menu.phtml (par exemple) mais comment spécifier le chemin pour mes partial ?

    Merci
    Mes contributions phares en dev : www.rigaudie.fr

  9. #9
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    Citation Envoyé par Général03 Voir le message
    :controller => c'est à dire que si je tape www.monsite.fr/articles/php j'obtiens www.monsite.fr/articles/ ?
    :alias => ca me sert à quoi ?
    C'est pas comme ça qu'il faut le voir, avec la route exemple que je t'ai donné, si tu tape www.monsite.fr/articles/php/CreerUnSingleton tu obtiendra en paramètres (cad qd tu fait $this->_request->getParams()) ceci:

    module => 'articles',
    controller => 'php',
    action => 'resume',
    alias => 'CreerUnSingleton'

    Moi je l'ai appelé alias comme alias url mais bon t'appelle tes parametres comme tu veux...
    Les idiots sont ceux qui ne posent jamais de question!

  10. #10
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut
    Citation Envoyé par manuscle
    C'est pas comme ça qu'il faut le voir, avec la route exemple que je t'ai donné, si tu tape www.monsite.fr/articles/php/CreerUnSingleton tu obtiendra en paramètres (cad qd tu fait $this->_request->getParams()) ceci:

    module => 'articles',
    controller => 'php',
    action => 'resume',
    alias => 'CreerUnSingleton'
    D'accord je comprends mieux par contre si je veux que lorsque l'on tape www.monsite.fr/articles j'affiche www.monsite.fr/articles/categorie je vais cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $route = new Zend_Controller_Router_Route(
              'articles/:controller/*',
              array(
                  'module'   => 'articles',
                  'controller' => 'categorie'
                    )
                             );
    Mais aussi pour avoir une URL de la forme suivante quand on choisit la catégorie www.monsite.fr/articles/php/CreerUnSingleton ?

    Merci pour vos conseils
    Mes contributions phares en dev : www.rigaudie.fr

  11. #11
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    Non c'est justement là qu'interviennent les defaults!

    Normalement ceci devrait fonctionner sur www.monsite.fr/articles car tu insère des valeurs par default si celles-ci ne sont pas saisies dans l'url:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    $route = new Zend_Controller_Router_Route(
              'articles/:controller/:alias/*',
              array(
                  'module'   => 'articles',
                  'action'     => 'resume',
                  'controller' => 'categorie',
                  'alias'        => null 
                  )
                             );
    Les idiots sont ceux qui ne posent jamais de question!

  12. #12
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut
    Donc avec la proposition que tu me fais j'aurais toujours une URL de cette forme www.monsite.fr/articles , même si je saisie une URL www.monsite.fr/articles/php/CreerUnSingleton ??

    Voila le comportement que je souhaite :
    - Par défaut www.monsite.fr/articles/categorie
    - Lorsque je suis sur un article ( d'une catégorie PHP par exemple ) je veux une URL comme cela www.monsite.fr/articles/php/CreerUnSingleton (pour un article se nommant CreerUnSingleton )
    Mes contributions phares en dev : www.rigaudie.fr

  13. #13
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    Est-ce que tu l'a essayé au moins la route avec les deux urls?

    Celle que je viens de te donner te permet (normalement car j'ai pas testé) d'attraper www.monsite.fr/articles et www.monsite.fr/articles/php/CreerUnSingleton à une subtilité près, www.monsite.fr/articles te renverra vers CategorieController::resumeAction()
    Les idiots sont ceux qui ne posent jamais de question!

  14. #14
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut
    Lorsque je mets le code suivant, si je tapes www.monsite.fr/articles mon controller par defaut est categorie et une action resume par defaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $route = new Zend_Controller_Router_Route(
              'articles/:controller/:alias/*',
              array(
                  'module'   => 'articles',
                  'controller' => 'categorie',
                  'action'     => 'resume',
                  'alias'        => null 
                  )
                             );
    Mais par contre si je tapes www.monsite.fr/articles/php j'obtiens une erreur comme quoi l'action resume de mon controller php n'existe pas. En effet, il n'existe pas puisque l'action resume est créer dans le controlleur categorie.
    Mais si je met cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $route = new Zend_Controller_Router_Route(
              'articles',
              array(
                  'module'   => 'articles',
                  'controller' => 'categorie',
                  'action'     => 'resume',
                  'alias'        => null 
                  )
                             );
    ma page s'affiche correctement avec l'action resume du controlleur categorie. Et pas d'erreur sur www.monsite.fr/articles/php !
    Tu peux me dire pourquoi je ne comprend pas ?

    Seul bémol, pourquoi dans mon URL je n'ai pas une ré-écriture de cette dernière en www.monsite.fr/articles/categorie/resume au lieu de www.monsite.fr/articles. Ce n'est pas un problème de router mais de URL rewriting c'est cas ?
    Mes contributions phares en dev : www.rigaudie.fr

  15. #15
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    Excuse ma pauvre pédagogie, parfois j'ai un peu de mal à expliquer...

    Citation Envoyé par Général03 Voir le message
    Mais si je met cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $route = new Zend_Controller_Router_Route(
              'articles',
              array(
                  'module'   => 'articles',
                  'controller' => 'categorie',
                  'action'     => 'resume',
                  'alias'        => null 
                  )
                             );
    ma page s'affiche correctement avec l'action resume du controlleur categorie. Et pas d'erreur sur www.monsite.fr/articles/php !
    Tu peux me dire pourquoi je ne comprend pas ?

    Seul bémol, pourquoi dans mon URL je n'ai pas une ré-écriture de cette dernière en www.monsite.fr/articles/categorie/resume au lieu de www.monsite.fr/articles. Ce n'est pas un problème de router mais de URL rewriting c'est cas ?
    Avec la route ci-dessus, le module 'articles' est remplacé par 'articles' (ça revient au même)
    le controlleur 'Index' est remplacé par 'categorie'
    l'action 'index' est remplacée par 'resume'

    Que veux-tu afficher lorsque l'on tape www.monsite.fr/articles/php ?
    Les idiots sont ceux qui ne posent jamais de question!

  16. #16
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut
    Citation Envoyé par manuscle
    Avec la route ci-dessus, le module 'articles' est remplacé par 'articles' (ça revient au même)
    le controlleur 'Index' est remplacé par 'categorie'
    l'action 'index' est remplacée par 'resume'
    Ok merci pour cette information.
    Citation Envoyé par manuscle
    Que veux-tu afficher lorsque l'on tape www.monsite.fr/articles/php
    La liste de mes articles en php. Par exemple l'action du controlleur php pourrait être resume.
    Mes contributions phares en dev : www.rigaudie.fr

  17. #17
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    Dans ce cas est-ce que ça t'embete de définir par defaut l'action index et dans ton indexAction(), si le parametre alias != null tu forward vers une autre action sinon tu affiche le resume ou la liste des articles dans la categorie?

    Genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
            $router = Zend_Controller_Front::getInstance()->getRouter();
            $route = new Zend_Controller_Router_Route(
                      'articles/:controller/:alias/*',
                      array(
                          'module'   => 'articles',
                          'controller' => 'categorie',
                          'alias'        => null 
                          )
            );
            $router->addRoute('articles', $route);
     
    // Dans le php controller
    public function init() // ou
    public function indexAction()
    {
       if ($this->_request->getParam('alias') !== null) {
          $this->_forward('article'); // Y a un alias donc on renvoi vers self::articleAction()
       }
       // Sinon j'affiche la liste des article dans ma categorie
    }
     
    // Dans le CategorieController
    // Pas d'init mais par defaut la liste des categories
    public function indexAction()
    {
         // Affiche la liste
    }
    Sinon tu peux faire plusieurs routes mais ma solution permet de faire une seule route et de moins se prendre la tête........ car c'est bientôt les vacances!
    Les idiots sont ceux qui ne posent jamais de question!

  18. #18
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut
    On se disperse de trop à en oublier le problème. Voilà ma config du routeur dans le bootstrap
    $route = new
    Zend_Controller_Router_Route(
    'articles/:controller/:action/*',
    array(
    'module' => 'articles',
    'controller' => 'categorie',
    'action' => 'resume' )
    );
    Cette configuration fonctionne, et voilà son comportement :
    URL saisie => Module, Controlleur, Action
    www.monsite.fr/articles => articles, categorie, resume
    www.monsite.fr/articles/php => articles, php, resume
    www.monsite.fr/articles/php/CreerUnsingleton => articles, php, CreerUnsingleton

    La seul question est de savoir si je peut changer l'URL de cette facon :
    URL saisie dans la barre d'adresse du navigateur => URL finale dans la barre d'adresse du navigateur
    www.monsite.fr/articles =>www.monsite.fr/articles/categorie/resume
    www.monsite.fr/articles/php => www.monsite.fr/articles/php/resume

    Donc ne pas cacher les controller et action dans l'URL.

    Merci
    Mes contributions phares en dev : www.rigaudie.fr

  19. #19
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    Excuse moi mais je ne comprend pas...

    En fait ce que tu veux, c'est lorsque l'utilisateur saisi www.monsite.fr/articles, le rediriger vers www.monsite.fr/articles/categories/resume ?
    Les idiots sont ceux qui ne posent jamais de question!

  20. #20
    Membre actif Avatar de Général03
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 848
    Points : 283
    Points
    283
    Par défaut
    Ca dépend se que tu entends par rediriger : moi je veux dans l'URL ceci www.monsite.fr/articles/categories/resume lorsque quelqu'un souhaite saisie une URL comme ceci www.monsite.fr/articles
    C'est vraiement juste de l'affichage car le routeur fonctionne correctement.
    Mes contributions phares en dev : www.rigaudie.fr

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Classement des fichiers en réseau
    Par mathieu_t dans le forum Applications
    Réponses: 3
    Dernier message: 30/08/2014, 22h30
  2. Classement des fichiers compilés
    Par noftal dans le forum VB.NET
    Réponses: 2
    Dernier message: 27/01/2014, 11h32
  3. lecture fichier et classement des données
    Par membreComplexe12 dans le forum C++
    Réponses: 20
    Dernier message: 24/11/2010, 14h55
  4. Classement des fichiers d'un répertoire par date
    Par lunick dans le forum Langage
    Réponses: 1
    Dernier message: 16/06/2008, 14h22
  5. Classement des fichiers
    Par php_de_travers dans le forum Langage
    Réponses: 4
    Dernier message: 11/05/2006, 10h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo