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 :

drupal 8 routing.yml controoler appel statique


Sujet :

Symfony PHP

  1. #1
    Membre averti Avatar de mapmip
    Profil pro
    ulla
    Inscrit en
    Juillet 2006
    Messages
    1 315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ulla

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 315
    Points : 345
    Points
    345
    Par défaut drupal 8 routing.yml controoler appel statique
    bonjour,

    dans mon fichier example.routing.yml, j'ai un appel à un controller nommé "hello":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    example.default_controller_hello:
      path: 'example/hello/{name}'
      defaults:
        _content: '\Drupal\example\Controller\DefaultController::hello'
        _title: 'example Title'
      requirements:
        _permission: 'access content'
    Remarquez que l'appel se fait avec un double 2 points ( :: ), qui est si je me rappelle bien , est un appel statique.
    La function "hello" n'est pas préfixée par "static", pourquoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <?php
     
    /**
     * @file
     * Contains Drupal\example\Controller\DefaultController.
     */
     
    namespace Drupal\example\Controller;
     
    use Drupal\Core\Controller\ControllerBase;
     
    class DefaultController extends ControllerBase {
     
      /**
       * Hello.
       *
       * @return string
       *   Return Hello string.
       */
      public function hello($name) {
        return "Hello " . $name . " !";
      }
    }

    Merci d'avance

  2. #2
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Salut, je ne connais pas du tout drupal, mais je sais que la version 8 s'appuie sur Symfony2.

    Dans Symfony2 les double points dans les fichiers yml n'ont rien à voir avec les méthodes statiques. Dans un fichier de routing, ils permettent de séparer Bundle, Controller, Action.
    La tronche classique d'une route dans Sf2 est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _controller: XxxBundle:Default:index
    Il est aussi important de noter qu'en Symfony2, l'action doit se terminer par 'Action'.
    Ainsi avec cette config, c'est la méthode indexAction() qui sera recherchée.

    ++

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    Bonjour,

    ça porte un peu à confusion, mais la manière de désigner une méthode d'une classe se base toujours sur les "::" qu'il s'agisse d'une méthode statique ou non.
    Ex: dans la doc de php : http://php.net/manual/fr/datetime.format.php ("format" n'est pas une méthode statique).
    Cela n'empeche pas que dans un programme on fera bien la différence entre "->" et "::"

    En interne, Symfony se charge donc d'instancier la classe, de lui injecter le container et d'appeler la bonne méthode (non statique donc)

Discussions similaires

  1. Appel statique de fonction
    Par thetux dans le forum C++
    Réponses: 13
    Dernier message: 11/08/2009, 13h03
  2. [Collaboration/Interaction] Représenter un appel statique
    Par newic500 dans le forum Autres Diagrammes
    Réponses: 9
    Dernier message: 11/12/2007, 14h26
  3. [POO] Appels statiques sur des classes
    Par daajack dans le forum Langage
    Réponses: 2
    Dernier message: 07/12/2007, 15h47
  4. [RegEx] Trouver les appels statique et dynamique d'une class
    Par jeff_! dans le forum Langage
    Réponses: 8
    Dernier message: 07/04/2006, 16h31
  5. [Séquence] Appels statiques ?
    Par Invité dans le forum Autres Diagrammes
    Réponses: 16
    Dernier message: 02/06/2005, 11h01

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