Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 20-06-2010 15:25:44

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

[Résolu] [Zend_Router] Aucun résultat

Bonjour, je souhaite obtenir des url plus propre j'ai donc logiquement décider d'utiliser la configs des routes avec ZF, malheureusement je n'obtient aucun résultat. Dans mon bootstrap j'initialise les routes comme cela :

Code:

protected function _initRoutes()
    {
        $configRoute = new Zend_Config_Ini(APPLICATION_PATH . '/configs/routes.ini');
        Zend_Controller_Front::getInstance()->getRouter()->addConfig($configRoute);
    }

Mon fichier ini :

Code:

[routes]
photo.type                  = "Zend_Controller_Router_Route_Regex"
photo.route                 = "view(?:-id-(\d+))?(?:-page-(\d+))?\.html"
photo.reverse               = "view-id-%d-page-%d.html"
photo.defaults.controller   = photo
photo.defaults.action       = view
photo.defaults.id           = 1
photo.defaults.page         = 1
photo.map.1                 = id
photo.map.2                 = page

J’accède à une photo de cette façon :

public/photo/view/id/2/page/1

Et avec la route config je devrais pouvoir écrire

public/view-id-2-page-1.html

Malheureusement j'obtient une erreur de controleur inexistant, ou est mon erreur?

Merci d'avance à vous!

Dernière modification par shadypierre (23-06-2010 10:17:08)

Hors ligne

 

#2 21-06-2010 16:53:34

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [Résolu] [Zend_Router] Aucun résultat

Personne n'a une petite idée? sad
J'ai pourtant suivi la doc hmm

Hors ligne

 

#3 22-06-2010 09:14:24

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Résolu] [Zend_Router] Aucun résultat

Salut,

Essaie comme ça :

Code:

[routes]
photo.type                  = "Zend_Controller_Router_Route_Regex"
photo.route                 = "view\-id\-(\d+)\-page\-(\d+)\.html"
photo.reverse               = "view-id-%d-page-%d.html"
photo.defaults.controller   = photo
photo.defaults.action       = view
photo.defaults.id           = 1
photo.defaults.page         = 1
photo.map.1                 = id
photo.map.2                 = page

A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#4 22-06-2010 11:00:57

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [Résolu] [Zend_Router] Aucun résultat

Toujours pas sad je dois mal déclarer quelque chose. j'ai essayé avec des route plus simple

[routes]
photo.type                  = "Zend_Controller_Router_Route_Regex"
photo.route                 = "view.html"
photo.defaults.controller   = photo
photo.defaults.action       = view

Et ça ne marche meme pas sad

Hors ligne

 

#5 22-06-2010 17:16:43

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Résolu] [Zend_Router] Aucun résultat

C'est ton _initRoutes() qui doit pas être bon.

Pourquoi tu n'utilises pas la resource "router" dans application.ini plutôt que de charger manuellement un fichier ini ? A ce moment là tu n'as même plus besoin de ton _initRoutes().

Code:

resources.router.routes.photo.type = "Zend_Controller_Router_Route_Regex"
resources.router.routes.photo.route = "view\-id\-(\d+)\-page\-(\d+)\.html"
resources.router.routes.photo.map.1 = id
resources.router.routes.photo.map.2 = page
resources.router.routes.photo.defaults.module = default
resources.router.routes.photo.defaults.controller = photo
resources.router.routes.photo.defaults.action = view
resources.router.routes.photo.defaults.id = 1
resources.router.routes.photo.defaults.page = 1
resources.router.routes.photo.reverse = "view-id-%d-page-%d.html"

A moins que tu n'utilises pas Zend_Application smile


A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#6 22-06-2010 17:54:08

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [Résolu] [Zend_Router] Aucun résultat

Oui j'utilise Zend_Application et en effet c'est mon _initRoutes() qui va pas sad quand je met direct dans mon application.ini ça roule parfaitement, arf c'est dmg j'aimerais bien avoir mon fichier de route séparé sad

Hors ligne

 

#7 22-06-2010 22:08:58

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Résolu] [Zend_Router] Aucun résultat

Bonsoir,

Tu peux séparer les fichiers de config avec Zend_Application si tu es à jour en 1.10.x, je ne sais plus dans quelle version exactement ça a été intégré.

Code:

$application = new Zend_Application(
    APPLICATION_ENV,
    array(
        'config' => array(
            APPLICATION_PATH . '/../etc/app/app.ini',  
            APPLICATION_PATH . '/../etc/app/database.ini', 
            APPLICATION_PATH . '/../etc/app/routes.ini'     
        )
    )
);

Attention par contre, erreur bête (que j'ai fais), toutes les sections doivent être présentes dans chaque fichier, même si elles sont vides, sinon le merge ne passe pas.

Par ex. routes.ini

Code:

[production]
resources.router.routes.photo.type = "Zend_Controller_Router_Route_Regex"
resources.router.routes.photo.route = "view\-id\-(\d+)\-page\-(\d+)\.html"
resources.router.routes.photo.map.1 = id
resources.router.routes.photo.map.2 = page
resources.router.routes.photo.defaults.module = default
resources.router.routes.photo.defaults.controller = photo
resources.router.routes.photo.defaults.action = view
resources.router.routes.photo.defaults.id = 1
resources.router.routes.photo.defaults.page = 1
resources.router.routes.photo.reverse = "view-id-%d-page-%d.html"

[staging : production]

[testing : production]

[development : production]

A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#8 23-06-2010 00:44:09

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [Résolu] [Zend_Router] Aucun résultat

Yes en effet ça roule big_smile
Merci bcp pour ton aide, vraiment!
Par contre c'est vraiment pas pratique de devoir refaire tout mes liens en modifiant la route à utiliser, j’entends par la qu'avant j'avais :

$this->url(array('controller'=>'photo', 'action'=>'view', 'id'=>$photo->getIdPhoto()),'default',true);

et maintenant j'ai :

$this->url(array('controller'=>'photo', 'action'=>'view', 'id'=>$photo->getIdPhoto()),'photo',true);

Il n'y a pas un moyen pour que Zend utilise automatiquement la bonne route en fonction de l'action et du controller demandé?

en tout cas merci vraiment bcp big_smile

Dernière modification par shadypierre (23-06-2010 01:10:55)

Hors ligne

 

#9 23-06-2010 09:28:22

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: [Résolu] [Zend_Router] Aucun résultat

Salut,

Non ce n'est pas possible. Par contre tu peux simplifier grâce aux valeurs par défaut de la route.
Le code suivant :

Code:

<a href="<?=$this->url(array(
    'controller'=>'photo', 
    'action'=>'view', 
    'id'=>$photo->getIdPhoto()
),'photo',true)?>">lien</a>

Peut se simplifier en :

Code:

<a href="<?=$this->url(array('id'=>$photo->getIdPhoto()), 'photo')?>">lien</a>

A+ benjamin.

Dernière modification par Delprog (23-06-2010 09:30:03)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#10 23-06-2010 10:16:50

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [Résolu] [Zend_Router] Aucun résultat

Ah oui c'est tjr ça big_smile, merci bcp pour ton aide!

Hors ligne

 

#11 23-06-2010 16:13:58

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Résolu] [Zend_Router] Aucun résultat

beh, oui, quand on utilise une route, on n'a pas besoin de spécifié le module/controller/action (sauf quand on utilise la route 'default')


----
Gruiiik !

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