Bonjour,

J'essaye charger dynamiquement des fichiers de routage yml de différents bundles en fonction d'une table de ma base de donnée. J'ai suivi le cookbook pour créer un custom route loader, mais j'ai une erreur lors de l'importation d'un fichier. Je travaille sur Symfony 2.3. Mon routage fonctionne correctement quand j'ajoute la routecollection manuellement dans le fichier routing.yml.

J'ai créé un service pour charger les routes :

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
class ExtraLoader implements LoaderInterface
{
    private $loaded = false;
 
    public function load($resource, $type = null)
    {
        if (true === $this->loaded) {
            throw new \RuntimeException('Do not add the "extra" loader twice');
        }
 
        $loader = new AdvancedLoader($this->getResolver());
        $routes = new RouteCollection();
 
        $route = $loader->import('@ERPExsecBBundle/Resources/config/routing.yml');
        $route->addPrefix('/Production/');
        $routes->addCollection($route);
 
        $this->loaded = true;
 
        return $routes;
    }
 
    [...]
}
Et un AdvancedLoader pour importer les fichiers yml :

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
class AdvancedLoader extends Loader
{
    public function __construct($resolver) {
        $this->resolver = $resolver;
    }
 
    public function load($resource, $type = null)
    {
        $collection = new RouteCollection();
        $type = 'yaml';
        $importedRoutes = $this->import($resource, $type);
        $collection->addCollection($importedRoutes);
        return $importedRoutes;
    }
 
    public function supports($resource, $type = null)
    {
        return $type === 'advanced_extra';
    }
}
Mais ça me retourne l'erreur suivante :

Fatal error: Uncaught exception 'Symfony\Component\Config\Exception\FileLoaderLoadException' with message 'Cannot load resource "@ERPExsecBBundle/Resources/config/routing.yml". Make sure the "ERPExsecBBundle/Resources/config/routing.yml" bundle is correctly registered and loaded in the application kernel class.' in C:\Program Files\wamp\www\alimerp\vendor\symfony\symfony\src\Symfony\Component\Config\Loader\Loader.php on line 77
Je pense que l'erreur vient du AdvancedLoader, mais je n'arrive pas à l'identifier.