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 :

Ajouter des routes dynamiquement [2.x]


Sujet :

Symfony PHP

  1. #21
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    quel est le namespace de la classe ?
    t'as bien configurer l'autoloader ?

  2. #22
    Membre du Club
    Profil pro
    Développeur Full Stack
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Points : 69
    Points
    69
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    En fait c'est pas mal, je vais m'en resservir pour un projet qui auto charge aussi les bundles

    dans le AppKernel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    use Symfony\Component\Finder\Finder;
     
    public function registerBundles() {
        $bundles = ...
     
        $finder = new Finder();
        $finder->name('*Bundle.php')->in(__DIR__.'/../src');
     
        foreach ($finder as $file) {
            $class = str_replace('\\', '/', $file->getRelativePath()) . '/' . $file->getBasename('.php');
    	$bundles = new $class;
        }
    }
    Il y a quoi à la place des '...' dans ton code ? Le array() généré de base (qui appelle Symfony, Sensio etc.) ?

    et derrière le foreach il y a directement le return derrière ?

  3. #23
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    ouai le code est juste avant le return

  4. #24
    Membre du Club
    Profil pro
    Développeur Full Stack
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Points : 69
    Points
    69
    Par défaut
    Ok, Les namespaces je les donnnt ci-dessus, l'autoloader indique le bon dossier je pense (dans autoload.php) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    'CommonBundle\' =>  __DIR__.'/../src/CommonBundles',
    'OtherBundles\' =>  __DIR__.'/../src/OtherBundles',

  5. #25
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    A part les \ en trop c'est ok

    montre ton fichier OtherBundlesBundleXBundle.php

  6. #26
    Membre du Club
    Profil pro
    Développeur Full Stack
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Points : 69
    Points
    69
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    A part les \ en trop c'est ok

    montre ton fichier OtherBundlesBundleXBundle.php
    Euh oui les \ de fin ne sont pas là, sinon ça provoque une erreur, je les ai enlevés.

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <?php
     
    namespace OtherBundles\BundleXBundle;
     
    use Symfony\Component\HttpKernel\Bundle\Bundle;
     
    class OtherBundlesBundleXBundle extends Bundle {
     
        public function boot() {
     
            if (file_exists(__DIR__ . '/Resources/config/routing.yml')) {
                $collection = $this->container
                        ->get('routing.loader')
                        ->load(__DIR__ . '/Resources/config/routing.yml');
     
                $aa = $this->container
                        ->get('router');
     
                $bb = $this->container
                        ->get('router')
                        ->getRouteCollection();
     
                $ee = $this->container
                        ->get('router')
                        ->getRouteCollection()
                        ->getParent();
     
                $ff = $this->container
                        ->get('router')
                        ->getRouteCollection()
                        ->all();
     
                $this->container
                        ->get('router')
                        ->getRouteCollection()
                        ->addCollection($collection);
     
                $cc = $this->container
                        ->get('router')
                        ->getRouteCollection();
     
                $ff2 = $this->container
                        ->get('router')
                        ->getRouteCollection()
                        ->all();
            }
        }
     
    }
    ?>

  7. #27
    Membre du Club
    Profil pro
    Développeur Full Stack
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Points : 69
    Points
    69
    Par défaut
    J'ai aussi réussi à faire fonctionner ton chargement automatique, en le modifiant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    $finder = new Finder();
            $finder->name('*Bundle.php')->in(__DIR__ . '/../src/CommonBundles');
     
            foreach ($finder as $file) {            
                $class = 'CommonBundles\\'.$file->getRelativePath().'\\'.$file->getBasename('.php');
                $bundles[] = new $class;
            }

  8. #28
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    donc la ca marche ?

  9. #29
    Membre du Club
    Profil pro
    Développeur Full Stack
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Points : 69
    Points
    69
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    donc la ca marche ?
    Oui

    Ça y est j'ai enfin réussi à faire fonctionner l'application avec la méthode boot() d'un côté et le chargement automatique des bundles de l'autre.

    Un grand merci stealth35 pour toute ton aide. Ça a vraiment été un plaisir d'être accompagné par toi.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Ajouter des éléments dynamiquement a un TMenu
    Par toure32 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 20/06/2008, 11h28
  2. tsql : ajout des colonnes dynamiques
    Par silset dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/06/2008, 16h21
  3. Réponses: 3
    Dernier message: 23/04/2007, 14h14
  4. Réponses: 1
    Dernier message: 19/08/2006, 20h40
  5. Réponses: 1
    Dernier message: 14/08/2006, 10h41

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