Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > MVC
MVC Forum de support sur le développement d'applications de type modèle-vue-contrôleur avec Zend Framework ainsi que vos questions sur les plugins, les helpers etc. Avant de poster -> Cours MVC, FAQ ZF Controller
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/08/2007, 15h57   #1
Invité de passage
 
Inscription : août 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 5
Points : 1
Points : 1
Par défaut MVC, Variable en début du chemin

Salut,

plutôt que:
:module/:controller/:action/*

je voudrais:
:supervariable/:module/:controller/:action/*

J'arrive à faire cela via les Router_Route / Router_Route_Regex, mais du coup pour gérer tout les cas de figure (module présent ou non etc...) je suis obligé d'en ajouter plusieurs, ce que je trouve un peu crados pour faire un truc si simple...

Bref comment _simplement_ récupérer une variable postérieur au MVC ?

Merci !
fwmpnk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2007, 17h36   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Le MVC permet d'organiser ton code en adoptant une structure. Cette structure est fixe et hiérarchisée :
  1. Contrôleur
  2. Module
  3. Action
Si tu cherches à mettre une variable avant le contrôleur, tu détruis cette organisation. C'est pour cela que ce n'est pas prévu par le framework.

Pourquoi as-tu besoin de le faire, quel est ton besoin ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2007, 18h38   #3
Invité de passage
 
Inscription : août 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 5
Points : 1
Points : 1
Citation:
Envoyé par Yogui
Pourquoi as-tu besoin de le faire, quel est ton besoin ?
Je te donne direct un example:

http://fr.netlog.com/go/register/
http://fr.netlog.com/miSslOve09/photo/photoid=8050239

La première partie de l'url correspond au "blog" d'une personne.
Par defaut, lorsque tu n'es pas sur le blog d'une personne mais sur le site général (l'accueil du site, inscription etc...) un "go" (cf premier lien) remplace la variable de nom de blog. Ce "go" pourrait être n'importe quoi d'autre puis que le MVC démarre seulement après cette variable et que la distinction entre le site général (register) et le site du blogueur (miSslove09) se fait uniquement via le controlleur, quelque soit la première variable.

Example:

http://fr.netlog.com/miSslOve09/register
ramène bien sur le site général, espace "register", tout comme le premier lien.


2 avantages:

1 - Sémantiquement, c'est plus logique d'avoir:

http://fr.netlog.com/miSslOve09/photo/photoid=8050239
que
http://fr.netlog.com/photo/miSslOve09/photoid=8050239/
(ça donne moins l'impression d'un blog indépendant)

2 - Ca évite de manière impeccable les conflits entre nom de blog et controleur:
Un type peut très bien créer un blog et l'appeler "register" ou "photo".

Voila j'espère avoir été clair...
fwmpnk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2007, 20h42   #4
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
L'URL http://fr.netlog.com/miSslOve09/photo/photoid=8050239 ne me semble pas être MVC du tout
Il faudrait plutôt ceci : http://fr.netlog.com/miSslOve09/photo/8050239

Citation:
Sémantiquement, c'est plus logique d'avoir:

http://fr.netlog.com/miSslOve09/photo/photoid=8050239
que
http://fr.netlog.com/photo/miSslOve09/photoid=8050239/
(ça donne moins l'impression d'un blog indépendant)
Je ne suis pas d'accord, je trouve cela plus logique d'avoir login/photo/xxx car ce sont bel et bien les photos de cette personne. Si au contraire ce sont des photos de tout le site (et pas de cette personne en particulier), alors l'URL est très mal choisie à mon avis (le pseudo ne devrait pas du tout apparaître, en ce cas).

Citation:
Ca évite de manière impeccable les conflits entre nom de blog et controleur:
Un type peut très bien créer un blog et l'appeler "register" ou "photo".
Tu confonds probablement "sous domaine" et "répertoire"
D'un autre côté, il est inutile d'avoir un "register" pour chacun de tes membres. Tu devrais avoir un register global, donc une action du contrôleur principal.


Je pense que tu as des URLs en double, ou plutôt le même contenu accessible par plusieurs URLs. C'est très mauvais pour le référencement, il faut que tu revoies la structure de ton site.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2007, 16h22   #5
Invité de passage
 
Inscription : août 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 5
Points : 1
Points : 1
J'ai bien en tête de respecter un minimum le schéma MVC:

Index du blog: www.site.com/userX

Ajouter une photo: www.site.com/userX/photo/add
controller: photo
action: add

Virer un message: www.site.com/userX/blog/del/messid
controller: blog
action: del

Il me semble logique pour ce genre de service que le nom du blog reste en amont de l'url.

L'étape suivante étant de faire un rewrite de sous-domaine, style:
userX.site.com/album => www.site.com/userX/album
fwmpnk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2007, 16h28   #6
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Si je ne m'abuse, le modèle MVC de ZF te permet de regrouper les controllers et les actions. Je te propose de regarder de ce côté, c'est peut-être la solution que tu recherches.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2007, 17h00   #7
Invité de passage
 
Inscription : août 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 5
Points : 1
Points : 1
Citation:
Envoyé par Yogui
le modèle MVC de ZF te permet de regrouper les controllers et les actions.
Humm, je ne vois pas de quoi il s'agit, tu peux détailler stp ?
fwmpnk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2007, 17h12   #8
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Malheureusement non, je ne suis pas expert dans le domaine, il va falloir approfondir de ton côté.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2007, 17h23   #9
Invité de passage
 
Inscription : août 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 5
Points : 1
Points : 1
Ok, merci tout de même.

En attendant, j'utilise un truc du style:

Code :
1
2
3
4
5
6
7
8
9
10
11
 
$route = new Zend_Controller_Router_Route(
    ':username/:module/:controller/:action/*',
    array(
        'username' => 'www',
        'module'    => 'default',
        'controller' => 'index',
        'action'     => 'index'
    )
);
$router->addRoute('default', $route);
Le problème est qu'il faut en mettre plusieurs, pour gérer l'absence de module ou autre dans la requête...

Je continue donc à chercher quelque chose de plus élégant.

Merci pour votre aide !
fwmpnk est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h28.


 
 
 
 
Partenaires

Hébergement Web