Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Ca faisait un moment qu'on bossaient dessus.
Ce coup ci, il est en prod.
http://www.francaisedesjeux.com
Hors ligne
eh ben ça c'est une référence ! Je pense que le site va être parachuté premier dans les liens
Beau boulot,
A+, Philippe
Hors ligne
C'est en fait le nouveau site corporate.
Le site commercial (fdjeux.com est encore basé sur notre ancien modèle maison). On le migrera probableblement a la prochaine version.
Hors ligne
Trés jolie site !
Du coup voilà ma curiosité aiguisé, et je serrai curieux de savoir, si ce n'est pas indiscret , comment vous utilisez ZF.
Vous utiliser le Framework tel quel avec l'architecture modulaire standard ou bien une version remanié du front et du dispacher par exemple ?
Mais en regardant les url apparemment le site est piloté par un CMS. Du coup je me demande comment le CMS fait la différence entre une page qu'il doit construire et un module qu'il doit afficher (par exemple ici : /groupe/default/actualites/lire/actualite/1623/) ?
@+
Hors ligne
Non, ce n'est pas normal... Mais comme dans toute les grosses boites, c'est un peu la galère pour faire faire quelque chose a un service dont on ne dépend pas. En l'occurrence, le pb de la page blanches est identifié, j'ai indiqué la solution, c'est un pb de paramétrage de l'infra. Malheureusement, je ne puis qu'attendre même si cela m'agace vu que la correction prend 10secondes, redémarrages des apaches inclus...
Pour répondre a 2mx. C'est l'archi modulaire standard mais vu la profondeur des urls (il peux y avoir jusqu'à 6 niveaux de profondeur dans les divers sous-menu, merci le marketing:) ), on a ajouté une partie path statique avant le module, et après l'action, on peux avoir 2 params/valeurs qui nous permette de définir une section et une page. En recherchant dans mes posts, tu trouvera aussi le système de layout qu'on a mis en place. Le CMS est un dev php maison qui nous sert pour tous les sites et mini-sites.
En tout cas, je suis assez content des perfs que l'on arrive a obtenir. Comme quoi, il est possible d'avoir le ZF et des perfs que je juge personnellement fort honorable (et ce malgré le poids des pages)
Dernière modification par TiTerm (18-12-2007 09:42:00)
Hors ligne
TiTerm a écrit:
on a ajouté une partie path statique avant le module, et après l'action, on peux avoir 2 params/valeurs qui nous permette de définir une section et une page.
Qu'est ce que tu entends par "path statique", l'utilisation du rewriter router ?
TiTerm a écrit:
En recherchant dans mes posts, tu trouvera aussi le système de layout qu'on a mis en place.
Héhé, je vais jeter un oeil ça m'intéresse !
TiTerm a écrit:
En tout cas, je suis assez content des perfs que l'on arrive a obtenir. Comme quoi, il est possible d'avoir le ZF et des perfs que je juge personnellement fort honorable (et ce malgré le poids des pages)
Effectivement à l'utilisation j'ai trouvé qu'il avait un bon répondant.
Je pose ces questions car j'ai un CMS php4 que je voudrais migrer sur ZF.
C'est pas pour tout de suite mais je commence a y réfléchir.
Aujourd'hui j'ai des url très simple avec seulement le nom de la page (le premier paramètre).
Par exemple : www.monsite.com/actualites/ pour une page qui affiche le listing des actualités et qui se situe dans l'arborescence /groupe/actualites/ par ex.
J'affiche une des actualités via une url du type :
www.monsite.com/actualites/?module=actu … mp;id=123.
Avec ZF j'aimerai arriver à des url du type www.monsite.com/groupe/actualites~/123
Je pense utiliser le ~ pour marquer la fin de l'arborescence et faire la différence avec les paramètres. Bon il me reste encore la réflexion pour savoir comment je vais y arriver techniquement
Hors ligne
2mx a écrit:
Qu'est ce que tu entends par "path statique", l'utilisation du rewriter router ?
Dans les routes, on a un morceau en dur... groupe, jeux-et-gagnants, etc...
Pour te donner un exemple
routes.groupe_lang.route = ":lang/groupe/:module/:controller/:action/*" routes.groupe_lang.defaults.module = default routes.groupe_lang.defaults.controller = index routes.groupe_lang.defaults.action = groupe routes.groupe_lang.path = groupe
2mx a écrit:
Héhé, je vais jeter un oeil ça m'intéresse
!
C'était la base, ca a bien évolué depuis, mais le concept était la.
2mx a écrit:
Effectivement à l'utilisation j'ai trouvé qu'il avait un bon répondant.
Et cela pourrait être encore meilleure si on était pas confronté a ces querelles de clochers ...
2mx a écrit:
Avec ZF j'aimerai arriver à des url du type www.monsite.com/groupe/actualites~/123
Je pense utiliser le ~ pour marquer la fin de l'arborescence et faire la différence avec les paramètres. Bon il me reste encore la réflexion pour savoir comment je vais y arriver techniquement
On a ouvert une demande d'évol, pour un pb similaire. Actuellement, sur la request, tu peux faire un getParams et tu récupère tout, controller, module, etc... On aurait bien aimé avoir une fonction qui ne retourne que la partie paramètre au sens ZF du terme, en clair, tout ce qui se trouve après l'action. Actuellement, on l'a fait nous même, mais on a trouvé que c'était un manque.
Hors ligne
TiTerm a écrit:
Dans les routes, on a un morceau en dur... groupe, jeux-et-gagnants, etc...
Pour te donner un exempleCode:
routes.groupe_lang.route = ":lang/groupe/:module/:controller/:action/*" routes.groupe_lang.defaults.module = default routes.groupe_lang.defaults.controller = index routes.groupe_lang.defaults.action = groupe routes.groupe_lang.path = groupe
Si je comprend bien, l'url suivante
http://www.francaisedesjeux.com/groupe/ … -marquants
pointe vers le module: "essentiel-groupe", controller: "faits-marquants", action: "index"
Mais comment intervient le CMS dans tout ça ? Ou alors est ce du static ?
Hors ligne
En fait, si tu as retrouvé le truc sur le layout dont je parlais plus haut, tu as du voir qu'on a une notion de composant.
Une page pour nous, c'est un agrégat de composant. Chaque composant est autonome.
Le CMS, intervient en amont et permet de définir le ou les contenus du composant.
Ensuite, en fonction des cas, soit un composant est inséré de facon statique dans le layout, cas des bandeau, menu etc...,
soit il est inséré dans une partie du layout qui qui contient un réceptacle (cas de la home, par exemple, en bas, les 3 composants a gauche du totem, le réceptacle peut contenir 3 composants, à choisir parmi une dizaine),
soit ce sont des composants ou des pages libres, et on a un système que l'on appel META, qui nous permet de définir une association entre une url et une donnée.
L'ensemble des urls est modélisé comme un arbre, et géré avec une notion d'héritage.
Quand j'ai conçu ce principe, c'était pour pouvoir géré les titre, keyword, description, etc... d'où le nom de Meta, mais on s'est rendu compte par la suite des immenses possibilités que ça apportait, et du coup, on l'utilise énormément pour plein de chose.
Pour reprendre le principe de base, pour le titre, il nous suffit de placer un titre sur la racine, et il est automatiquement hérité par toute les pages. Si on veux compléter une page ou une branche, on place un nouveau meta sur la feuille ou la branche et soit, on complete, soit on remplace.
On à aussi des "magic keyword" utilisable dans les metas qui permettre par exemple de reprendre le premier H1 dispo dans un composant ou une page. Du coup, la définition du titre est identique mais le résultat est lié au titre H1. Les magic keyword sont administrable et totalement libre.
On a dérivé ce truc a l'infini... On l'utilise pour affecter des composants a des pages, par exemple, dans /groupe, le composant "En 1 Clic" est présent si on a affecté une instance du composant, ici, en l'occurrence, la même instance est actuellement affectée à la branche /groupe, donc dans tout /groupe et les sous pages, on aura cette même instance du composant.
C'est pas facile à décrire, car c'est très visuel, me suis bien pris la tête pour ça d'ailleurs ...
Hors ligne
Bonjour 2mx,
Pour tes routes bizarres avec des ~ dedans, tu peux regarder du coté de Zend_Controller_Router_Route_Regex (http://framework.zend.com/manual/en/zen … ter.routes).
C'est un peu paumé au fin fond de la doc, mais ça te permet d'avoir des routes avec le format que tu veux (défini par des expressions régulières).
A+, Philippe
Hors ligne
Merci TiTerm d'avoir pris le temps de me répondre.
Je vais jeter in œil sur ton système de layout.
Hors ligne
philippe a écrit:
Pour tes routes bizarres avec des ~ dedans
Comment ça bizarres ? Elles sont pas bizarres mes routes !!
En fait les premiers paramètres représente l'arborescence des pages, dans le cms les pages sont stocké en db avec une structure hiérarchique, et leurs nombres dépend du niveau de profondeur dans laquelle la page se trouve. Par exemple
www.monsite.com/groupe/essentiel-groupe … eur-du-jeu représente la page
-home
+ groupe
+ essentiel-groupe
+ chiffres-cles
- secteur-du-jeu
Il me faut donc un sytème pour dire ou se trouve la fin de " l'url " de la page et ou commence les paramètres. D'ou le ~
Et comme sur le système de TiTerm une page se compose de blocs statiques et ou de components et peu contenir une action d'un module.
Par exemple la page secteur-du-jeu pourrai contenir du contenu statique et un module actualites qui afficherai l'action par défaut, le listing des actus. Chaque éléments du listing a un lien savoir plus pour avoir le détail de l'actu.
L'url complète donnerai:
www.monsite.com/groupe/essentiel-groupe/chiffres-cles/secteur-du-jeu~/actualites/index/detail/id/45
philippe a écrit:
tu peux regarder du coté de Zend_Controller_Router_Route_Regex (http://framework.zend.com/manual/en/zen … ter.routes).
C'est un peu paumé au fin fond de la doc, mais ça te permet d'avoir des routes avec le format que tu veux (défini par des expressions régulières).
Merci, effectivement ça doit pouvoir le faire, je me réserve un neurone pour penser a aller voir
Dernière modification par 2mx (18-12-2007 15:04:17)
Hors ligne
Sachant que tu connais ton url courante, et ton $module, $contoller, $action.
tu ne pourrais pas faire une simple regexp preg_match("!$module/$controller/$action/(.*)!",$url, $matches) ?
Dans matches[1], tu devrais avoir la fin de ton url.
Hors ligne
TiTerm a écrit:
Sachant que tu connais ton url courante, et ton $module, $contoller, $action.
En fait je ne connais que le $module car une fois le module insérer dans ma page il peut appeler un $controller différent. Même en bridant à un $controller, j'aurai quand même $action qui va varier. Par exemple pour un module gallerie photo que je plug dans une page, je vais avoir par défaut la liste des albums, on clique sur un album la liste des photos, au clic sur une photo le détail de la photo.
Hors ligne