Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 04-10-2012 14:45:57

cybercandyman
Membre
Date d'inscription: 07-05-2008
Messages: 22

Probleme de routes ?

Bonjour à tous,

Je fais quelques test sur le nouveau framework et j'observe un comportement anormal.
J'ai deux modules : application et foo,
voici les routes que j'ai défini :

Code:

  [lang=php]  'router' => array(
        'routes' => array(

            'home' => array(
                'type' => 'Zend\Mvc\Router\Http\Literal',
                'options' => array(
                    'route'    => '/',
                    'defaults' => array(
                        '__NAMESPACE__' => 'Fo\Controller',
                        'controller' => 'Fo\Controller\Fo', 
                        'action'     => 'index',
                    ),
                ),
            ),
            'fo' => array(
                'type'    => 'Literal',
                'options' => array(
                    'route'    => '/front-office',
                    'defaults' => array(
                        '__NAMESPACE__' => 'Fo\Controller',
                        'controller'    => 'Fo\Controller\Fo',
                        'action'        => 'index'
                    ),
                ),
                'may_terminate' => true,
                'child_routes' => array(
                    'default' => array(            
                        'type'    => 'Segment',
                        'options' => array(
                            'route'    => '/[:controller[/[:action]]]',
                            'defaults' => array(
                                        '__NAMESPACE__' => 'Fo\Controller',
                                         'action'        => 'index',            
                            ),
                            'constraints' => array(
                                'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
                                'action'     => '[a-zA-Z][a-zA-Z0-9_-]*',
                            ),
                           
                        ),
                    ),
                ),
            ),
            // The following is a route to simplify getting started creating
            // new controllers and actions without needing to create a new
            // module. Simply drop new controllers in, and you can access them
            // using the path /application/:controller/:action
            'application' => array(
                'type'    => 'Literal',
                'options' => array(
                    'route'    => '/application',
                    'defaults' => array(
                        '__NAMESPACE__' => 'Application\Controller',
                        'controller'    => 'Index',
                        'action'        => 'index',
                    ),
                ),
                'may_terminate' => true,
                'child_routes' => array(
                    'default' => array(
                        'type'    => 'Segment',
                        'options' => array(
                            'route'    => '/[:controller[/:action]]',
                            'constraints' => array(
                                'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
                                'action'     => '[a-zA-Z][a-zA-Z0-9_-]*',
                            ),
                            'defaults' => array(
                            ),
                        ),
                    ),
                ),
            ),
        ),
    ),

ce que j'observe dans un premier temps c'est que les routes indiquées fonctionnent correctement, c'est à dire que les urls "/" = "/front-office" = "/front-office/fo" = "/front-office/fo/index" retourne bien l'action de mon controlleur Fo du module Fo.
En revanche je ne comprend pas le comportement de cette url suivante : "/front-office/index" qui correspond à l'action index du controlleur index du module application ... Comment est-ce possible que ce soit l'action d'un autre module qui soit rendu, d'autant plus que je n'ai pas de IndexController dans Fo (si je le crée c'est bien ce dernier qui est appelé).

merci pour vos lumiéres smile

Dernière modification par cybercandyman (04-10-2012 15:11:06)

Hors ligne

 

#2 04-10-2012 15:00:58

cybercandyman
Membre
Date d'inscription: 07-05-2008
Messages: 22

Re: Probleme de routes ?

Je me rend compte que cela vient du fait que j'utilises des alias dans le controller manager, par exemple :

Code:

   [lang=php] 'controllers' => array(
        'invokables' => array(
            'Application\Controller\Index' => 'Application\Controller\IndexController',
            'Application\Controller\Auth' => 'Application\Controller\AuthController'
        ),
        'aliases' => array(

            'auth' =>'Application\Controller\Auth',
            'index' =>  'Application\Controller\Index'

        )
    )

donc quand j'appele le controlleur index, le service manager pointe sur 'Application\Controller\Index' ...
le fait est que je suis obligé de mettre des alias sinon mes routes ne sont pas résolues... qu'est ce que je fais de travers ?

Dernière modification par cybercandyman (04-10-2012 15:10:55)

Hors ligne

 

#3 04-10-2012 15:37:48

jfvole
Membre
Date d'inscription: 20-11-2010
Messages: 69

Re: Probleme de routes ?

bonjour,

pour ma part je code directement

Code:

[lang=php]

'controllers' => array(
        'invokables' => array(
            'index' => 'Application\Controller\IndexController',
            ...
        )
    )
'router' => array(
        'routes' => array(
            'authentification' => array( // <- UNIQUE MAIS SANS IMPORTANCE CONNU POUR MOI
                'type'    => 'Literal',
                'options' => array(
                    'route'    => '/auth', // <- URL Réelle 
                    'defaults' => array(
                        'controller'    => 'index', // <- invokables
                        'action'        => 'authentification',
                    ),
                ),
...

Dernière modification par jfvole (04-10-2012 15:46:55)

Hors ligne

 

#4 04-10-2012 16:12:42

cybercandyman
Membre
Date d'inscription: 07-05-2008
Messages: 22

Re: Probleme de routes ?

Je viens de tester en retirant les alias et malheureusement j'ai le même résultat.
Les controlleurs et les actions  sont bien invoqués quand ils/elles existent ce n'est pas le problème ...
Typiquement sur mon url :
/application/auth/index, je n'ai pas d'action index dans mon controlleur auth, et pourtant je n'ai pas d'erreur à l'éxécution, le contenu qui m'est retourné est celui de /application/index/index ^^

ça me rend dingue *_*

Hors ligne

 

#5 05-10-2012 10:08:07

cybercandyman
Membre
Date d'inscription: 07-05-2008
Messages: 22

Re: Probleme de routes ?

Bon visiblement, c'est comme cela que çà fonctionne, c'est le comportement normal.
La notion de module est différente du ZF1.
merci pour ton aide

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages