IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

routing et slug


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 11
    Par défaut routing et slug
    Bonjour

    J'ai suivi le tutorial de jobeet jusqu'aux url ou là j'ai du mal à comprendre.

    On explique qu'il faut utiliser slug pour avoir des url correctes

    :position dans le ficher de routing correspond a getPosition() ok

    :position_slug dans le fichier de routing correspond à quoi .. ? (C'est une colonne virtuelle de la table ? une méthode statique qui est appelée ?)

    J'ai bien getPositionSlug() est ce que le _ entre position et slug définie une notation Camel quelconque ?

    Enfin à quoi sert doctrine collection (list/objet), à quoi sert le model method ?

    Est ce que c'est une méthode basé sur une classe model ?

    Genre class : sfDoctrineRoute (ou ma classe de routing via une extend)
    model : la classe rattaché à l'objet (il faut donc faire correspondre les :champs du routing avec le nom des colonnes grosso modo) et method : c'est la methode qui sera appellé par défaut ?

    Merci pour vos éclaircissements

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Xenesis Voir le message
    Bonjour

    J'ai suivi le tutorial de jobeet jusqu'aux url ou là j'ai du mal à comprendre.

    On explique qu'il faut utiliser slug pour avoir des url correctes

    :position dans le ficher de routing correspond a getPosition() ok

    :position_slug dans le fichier de routing correspond à quoi .. ? (C'est une colonne virtuelle de la table ? une méthode statique qui est appelée ?)

    J'ai bien getPositionSlug() est ce que le _ entre position et slug définie une notation Camel quelconque ?
    En fait il prend simplement le nom que tu as mis, le transformer, et essayer d'appeler une méthode correspondante sur ton objet. En gros il prend le mot "get", il met la première lettre du nom de paramètre en majuscule, supprime les '_' et met une majuscule aux lettres qui suivaient les '_'
    Tu dois donc faire une méthode getPositionSlug() dans ton modèle. Mais tu mets ce que tu veux dedans. D'après le nom, t'es censé renvoyer un slug du champ "position", mais si ça te chante tu fais return "toto";, tu auras juste le mot "toto" dans toutes tes urls
    Citation Envoyé par Xenesis Voir le message
    Enfin à quoi sert doctrine collection (list/objet), à quoi sert le model method ?

    Est ce que c'est une méthode basé sur une classe model ?

    Genre class : sfDoctrineRoute (ou ma classe de routing via une extend)
    model : la classe rattaché à l'objet (il faut donc faire correspondre les :champs du routing avec le nom des colonnes grosso modo) et method : c'est la methode qui sera appellé par défaut ?

    Merci pour vos éclaircissements
    Le type: "object" ou "list" sert à déterminer si tu récupère une liste d'objet ou un seul en particulier. Pour une page qui affiche une liste d'objets, tu mets "list" comme ça tu as une Doctrine_Collection qui contient des objets. Si c'est une page chargée d'afficher un objet, tu mets type: object comme ça tu as directement l'objet souhaité.

    Enfin, la "method" dont tu parles c'est le "method_for_query" ? Si c'est de ça que tu parles, il s'agit de la méthode qui sera utilisée pour récupérer une liste l'objet. Par exemple dans Jobeet, la route sert à afficher une liste d'offres d'emploi mais on veut que ce soit les offres actives qui soient récupérées. Si on n'avait pas mis de method_for_query, toutes les offres présentes en base de données seraient renvoyées.
    Or avec le method_for_query, on spécifie quelle méthode de la classe JobeetJobTable on va utiliser. On peut donc ensuite dans cette méthode particulière faire la requête que l'on souhaite avec les conditions qu'on souhaite.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 11
    Par défaut
    D'accord merci pour les explications.

    En fait symfony essayes de faire correspondre a tout prix les nom dans routing a une methode camelCase..

    donc si je fais une methode genre

    getToto_Tata() {
    return 'test';
    }

    dans le routing je devrais mettre quoi ?

    :Toto\_Tata ? (vu qu'il essayes de virer les _ ..)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Et bien ... Le soucis c'est que getToto_Tata ça viole la convention de nommage donc je sais pas si c'est possible.

    Tu devrais faire getTotoTata() et mettre dans ton routing :toto_tata

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 11
    Par défaut
    Ben le but c'est de les violer lol nan c'est juste pour voir ce que ca fait

    Donc si je comprends bien, en fait doctrine c une classe qui te permet de faire correspondre a un objet "doctrine" avec une base de donnée (genre $job)

    grace a $job il fait correspondre le model qui va bien, et essayes de lire l'objet avec les champs de la bdd ou ceux que tu as fixé toi meme dans le model

    tandis que sfRouteObjet te permet de faire la même chose, sauf que tu peux passer n'importe quel objet et apres c'est a toi de te demmerder pour faire faire les connexions à la BDD et recup les champs qui vont bien.. c'est bien ca ?

    En gros en fonction des url on peut lui faire passer n'importe quel type de route avec des modèles et des BDD différentes

  6. #6
    Invité
    Invité(e)
    Par défaut
    Doctrine c'est un ORM. Une de ses fonction est de faire correspondre des types d'objets aux tables de ta base de données.

    Les routes c'est différent. Tu as différentes types de route. Les routes "normales" (sfRoute je crois). Tu leurs passent un tableau de paramètres et elles les mettent dans l'url. Les routes Doctrine (sfDoctrineRoute) elles tu leurs passent juste un objet, et elle va appeler des méthodes getXxxx sur cet objet en fonction des xxx que tu mets dans l'url de ta route.

    Pour ce qui est de ta dernière phrase, je comprends pas du tout ce que tu as voulu dire

Discussions similaires

  1. [2.x] regex routing slug
    Par chlock62 dans le forum Symfony
    Réponses: 3
    Dernier message: 10/01/2015, 14h53
  2. [1.x] Routing avec variable slug
    Par Kimado dans le forum Débuter
    Réponses: 3
    Dernier message: 26/02/2011, 17h41
  3. Définition d'une route
    Par Amélie Ladoque dans le forum Réseau
    Réponses: 5
    Dernier message: 24/03/2005, 11h08
  4. Rajouter un Field à un TTable en cours de route
    Par gandf dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/02/2005, 23h54
  5. Encore une jointure sous Oracle pour la route
    Par ebaynaud dans le forum Langage SQL
    Réponses: 15
    Dernier message: 04/11/2004, 11h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo