X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fdevel%2Fsrc%2FRouting%2FRouteSubscriber.php;fp=web%2Fmodules%2Fcontrib%2Fdevel%2Fsrc%2FRouting%2FRouteSubscriber.php;h=e8ea49b9fdca90dbbf0371894e8f8dcd1c72dc8f;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hp=0000000000000000000000000000000000000000;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad;p=yaffs-website diff --git a/web/modules/contrib/devel/src/Routing/RouteSubscriber.php b/web/modules/contrib/devel/src/Routing/RouteSubscriber.php new file mode 100644 index 000000000..e8ea49b9f --- /dev/null +++ b/web/modules/contrib/devel/src/Routing/RouteSubscriber.php @@ -0,0 +1,156 @@ +entityTypeManager = $entity_manager; + } + + /** + * {@inheritdoc} + */ + protected function alterRoutes(RouteCollection $collection) { + foreach ($this->entityTypeManager->getDefinitions() as $entity_type_id => $entity_type) { + if ($route = $this->getEntityLoadRoute($entity_type)) { + $collection->add("entity.$entity_type_id.devel_load", $route); + } + if ($route = $this->getEntityRenderRoute($entity_type)) { + $collection->add("entity.$entity_type_id.devel_render", $route); + } + if ($route = $this->getEntityTypeDefinitionRoute($entity_type)) { + $collection->add("entity.$entity_type_id.devel_definition", $route); + } + } + } + + /** + * Gets the entity load route. + * + * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type + * The entity type. + * + * @return \Symfony\Component\Routing\Route|null + * The generated route, if available. + */ + protected function getEntityLoadRoute(EntityTypeInterface $entity_type) { + if ($devel_load = $entity_type->getLinkTemplate('devel-load')) { + $entity_type_id = $entity_type->id(); + $route = new Route($devel_load); + $route + ->addDefaults([ + '_controller' => '\Drupal\devel\Controller\EntityDebugController::entityLoad', + '_title' => 'Devel Load', + ]) + ->addRequirements([ + '_permission' => 'access devel information', + ]) + ->setOption('_admin_route', TRUE) + ->setOption('_devel_entity_type_id', $entity_type_id) + ->setOption('parameters', [ + $entity_type_id => ['type' => 'entity:' . $entity_type_id], + ]); + + return $route; + } + } + + /** + * Gets the entity render route. + * + * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type + * The entity type. + * + * @return \Symfony\Component\Routing\Route|null + * The generated route, if available. + */ + protected function getEntityRenderRoute(EntityTypeInterface $entity_type) { + if ($devel_render = $entity_type->getLinkTemplate('devel-render')) { + $entity_type_id = $entity_type->id(); + $route = new Route($devel_render); + $route + ->addDefaults([ + '_controller' => '\Drupal\devel\Controller\EntityDebugController::entityRender', + '_title' => 'Devel Render', + ]) + ->addRequirements([ + '_permission' => 'access devel information' + ]) + ->setOption('_admin_route', TRUE) + ->setOption('_devel_entity_type_id', $entity_type_id) + ->setOption('parameters', [ + $entity_type_id => ['type' => 'entity:' . $entity_type_id], + ]); + + return $route; + } + } + + /** + * Gets the entity type definition route. + * + * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type + * The entity type. + * + * @return \Symfony\Component\Routing\Route|null + * The generated route, if available. + */ + protected function getEntityTypeDefinitionRoute(EntityTypeInterface $entity_type) { + if ($devel_definition = $entity_type->getLinkTemplate('devel-definition')) { + $entity_type_id = $entity_type->id(); + $route = new Route($devel_definition); + $route + ->addDefaults([ + '_controller' => '\Drupal\devel\Controller\EntityDebugController::entityTypeDefinition', + '_title' => 'Entity type definition', + ]) + ->addRequirements([ + '_permission' => 'access devel information' + ]) + ->setOption('_admin_route', TRUE) + ->setOption('_devel_entity_type_id', $entity_type_id) + ->setOption('parameters', [ + $entity_type_id => ['type' => 'entity:' . $entity_type_id], + ]); + + return $route; + } + } + + /** + * {@inheritdoc} + */ + public static function getSubscribedEvents() { + $events = parent::getSubscribedEvents(); + $events[RoutingEvents::ALTER] = ['onAlterRoutes', 100]; + return $events; + } + +}