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 :
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
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; } [...] }
Mais ça me retourne l'erreur suivante :
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'; } }
Je pense que l'erreur vient du AdvancedLoader, mais je n'arrive pas à l'identifier.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
Partager