Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
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 14/04/2011, 10h38   #1
Membre à l'essai
 
Inscription : mars 2008
Messages : 159
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 159
Points : 24
Points : 24
Par défaut requirements dans le routing.yml

Bonjour,

Voici mon problème :

Je peux me retrouver avec ce genre d'url

"www.monsite.com/monProduit/index.php"

ou

"www.monsite.com/untruc/index.php"

Dans mon yml j'ai :

Code :
1
2
3
4
5
6
7
8
9
 
maRouteProduit:
  url:  /:product/index.php
  param: { module: xxxx, action: yyyyy }
 
 
maRouteTruc:
  url:  /trucEnDur/index.php
  param: { module: aaa, action: bbb }
donc suivant l'ordre de ces routes dans le yml les redirections seront différentes. Au lieu de me préoccuper à chaque fois de l'ordre des routes (car j'ai plusieurs fois ce cas) j'aimerai avoir :

Code :
1
2
3
4
5
 
maRouteProduit:
  url:  /:product/index.php
  param: { module: xxxx, action: yyyyy }
  requirements: { product: * different de monTruc* }
Je n'arrive pas à faire la "négation" .

Quelqu'un à une idée ?

Merci
coupolites est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 14h56   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Pas vraiment une idée.

L'objet route n'est pas fait pour ce type de traitement. Et c'est plus que de réécrire l'objet route qu'il faudrait pour le prendre en compte.

Il prend la première qui ressemble.

Le mieux est d'avoir une requête du style "www.monsite.com/produit/monProduit/index.php"

Dans le cas contraire on cours le risque (probable) d'avoir un produit nommé : untruc. Et l'impossibilité d'accéder à untruc...
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 15h01   #3
Membre à l'essai
 
Inscription : mars 2008
Messages : 159
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 159
Points : 24
Points : 24
Merci pour ta réponse Michel,

En fait avec ça :

Code :
1
2
 
requirements: { product: '^(product1)|(product2)|(product3)......$' }
ça marche mais je peux pas l'utiliser car j'ai beaucoup trop de produit. Il me faut juste la "négation" de cette expression.
coupolites est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 17h35   #4
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Je continue de considérer que ceci n'est pas fait pour.

Il faut bien imaginer le temps passé dans le système de routage pour TOUTES les pages du sites. Sans compter qu'il faudrait rendre cela interactif (pouvoir facilement ajouter ou supprimer des possibilités).

Symfony est très paramétrable, il reste sans doute possible de dériver l'objet route de base pour en créer un adapté. Mais cela reste une mauvaise idée.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/04/2011, 18h16   #5
Membre à l'essai
 
Inscription : mars 2008
Messages : 159
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 159
Points : 24
Points : 24
Je ne comprend pas pourquoi tu dis que ce n'est "pas fait pour ça" ?

J'utilise l'existant, sur le site de symfony on y trouve des exmples du style :

Code :
1
2
3
4
5
 
article_by_id:
  url:   /article/:id
  param: { module: article, action: read }
  requirements: { id: \d+ }
ici on force bien à ce que l'id soit un nombre non ?

Merci
coupolites est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 00h44   #6
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Ce n'est pas comparable.

Il y a un monde entre forcer un paramètre à être d'un type donné et à considérer qu'il doit faire partie d'un ensemble exclusif.

Par contre regarde du côté des sfDoctrineRoute qui pourrait se rapprocher de ce que tu cherches. Mais je ne sais pas comment elle vont réagir à la racine d'un site notamment, vont-elle passer la mains à la route suivante ? Leur comportement serait plutôt de considérer que cela rentre dans "leur moule" et de renvoyer sur une erreur 404 si le slug rencontré ne colle pas avec ceux présent dans la base. C'est peut-être adaptable.

Réfléchi à la possibilité de mettre un préfix à ton url, je pense que tu te simplifiera la vie, beaucoup. Le préfix ne termine pas nécessairement par un "/"
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 11h19   #7
Membre à l'essai
 
Inscription : mars 2008
Messages : 159
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 159
Points : 24
Points : 24
Je pense que je vais modifier la route ça sera plus simple

Merci pour ton aide
coupolites est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2011, 15h49   #8
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Je pense que retoucher la route et utiliser un sfDoctrineRoute en combinaison avec un slug sera encore plus simple et donnera à ton site une touche des plus intéressante sans nécessiter un développement intense.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h04.


 
 
 
 
Partenaires

Hébergement Web