Version 1
[yaffs-website] / web / modules / contrib / devel / devel_generate / src / Routing / DevelGenerateRoutes.php
diff --git a/web/modules/contrib/devel/devel_generate/src/Routing/DevelGenerateRoutes.php b/web/modules/contrib/devel/devel_generate/src/Routing/DevelGenerateRoutes.php
new file mode 100644 (file)
index 0000000..6cf98d9
--- /dev/null
@@ -0,0 +1,57 @@
+<?php
+
+namespace Drupal\devel_generate\Routing;
+
+use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
+use Drupal\Component\Plugin\PluginManagerInterface;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\Routing\Route;
+
+/**
+ * Provides dynamic routes for devel_generate.
+ */
+class DevelGenerateRoutes implements ContainerInjectionInterface {
+
+  /**
+   * Constructs a new devel_generate route subscriber.
+   *
+   * @param \Drupal\Component\Plugin\PluginManagerInterface $devel_generate_manager
+   *   The DevelGeneratePluginManager.
+   */
+  public function __construct(PluginManagerInterface $devel_generate_manager) {
+    $this->DevelGenerateManager = $devel_generate_manager;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function create(ContainerInterface $container) {
+    return new static(
+      $container->get('plugin.manager.develgenerate')
+    );
+  }
+
+  public function routes() {
+    $devel_generate_plugins = $this->DevelGenerateManager->getDefinitions();
+
+    $routes = array();
+    foreach ($devel_generate_plugins as $id => $plugin) {
+      $label = $plugin['label'];
+      $type_url_str = str_replace('_', '-', $plugin['url']);
+      $routes["devel_generate.$id"] = new Route(
+        "admin/config/development/generate/$type_url_str",
+        array(
+          '_form' => '\Drupal\devel_generate\Form\DevelGenerateForm',
+          '_title' => "Generate $label",
+          '_plugin_id' => $id,
+        ),
+        array(
+          '_permission' => $plugin['permission'],
+        )
+      );
+    }
+
+    return $routes;
+  }
+
+}