X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fdrupalmoduleupgrader%2Fsrc%2FPlugin%2FDMU%2FConverter%2FRouting.php;fp=web%2Fmodules%2Fcontrib%2Fdrupalmoduleupgrader%2Fsrc%2FPlugin%2FDMU%2FConverter%2FRouting.php;h=8b88019c3e67595def0939bca993a6ef1a4dfd14;hp=0000000000000000000000000000000000000000;hb=8acec36f19c470dfcda1ae2336826a782f41874c;hpb=e0411c4e83ba0d079034db83c3f7f55be24a0e35 diff --git a/web/modules/contrib/drupalmoduleupgrader/src/Plugin/DMU/Converter/Routing.php b/web/modules/contrib/drupalmoduleupgrader/src/Plugin/DMU/Converter/Routing.php new file mode 100644 index 000000000..8b88019c3 --- /dev/null +++ b/web/modules/contrib/drupalmoduleupgrader/src/Plugin/DMU/Converter/Routing.php @@ -0,0 +1,90 @@ +routeConverters = $route_converters; + } + + /** + * {@inheritdoc} + */ + public function convert(TargetInterface $target) { + // If the hook implementation contains logic, we cannot convert it and + // that's that. So we'll leave a FIXME and bail out. + /** @var \Pharborist\Functions\FunctionDeclarationNode $hook */ + $hook = $target->getIndexer('function')->get('hook_menu'); + if ($hook->is(new ContainsLogicFilter)) { + $hook->setDocComment(DocCommentNode::create($this->pluginDefinition['fixme'])); + $target->save($hook); + return; + } + + $hook_menu = new HookMenu($target, $this->routeConverters); + foreach ($hook_menu->getSourceRoutes() as $path => $route) { + /** @var \Drupal\drupalmoduleupgrader\Routing\Drupal7\RouteWrapper $route */ + if ($route->containsKey('page callback')) { + $plugin_id = $this->routeConverters->hasDefinition($route['page callback']) ? $route['page callback'] : 'default'; + /** @var \Drupal\drupalmoduleupgrader\Routing\RouteConverterInterface $converter */ + $this->routeConverters->createInstance($plugin_id)->buildRoute($target, $route); + } + } + + $routing = []; + foreach ($hook_menu->getDestinationRoutes() as $name => $route) { + $routing[$name] = [ + 'path' => $route->getPath()->__toString(), + 'defaults' => $route->getDefaults(), + 'requirements' => $route->getRequirements(), + ]; + } + $this->writeInfo($target, 'routing', $routing); + } + +}