protected PathBasedBreadcrumbBuilder::getRequestForPath($path, array $exclude)
Matches a path in the router.
Parameters
string $path: The request path with a leading slash.
array $exclude: An array of paths or system paths to skip.
Return value
\Symfony\Component\HttpFoundation\Request A populated request object or NULL if the path couldn't be matched.
File
- core/modules/system/src/PathBasedBreadcrumbBuilder.php, line 184
Class
- PathBasedBreadcrumbBuilder
- Class to define the menu_link breadcrumb builder.
Namespace
Drupal\system
Code
protected function getRequestForPath($path, array $exclude) { if (!empty($exclude[$path])) { return NULL; } // @todo Use the RequestHelper once https://www.drupal.org/node/2090293 is // fixed. $request = Request::create($path); // Performance optimization: set a short accept header to reduce overhead in // AcceptHeaderMatcher when matching the request. $request->headers->set('Accept', 'text/html'); // Find the system path by resolving aliases, language prefix, etc. $processed = $this->pathProcessor->processInbound($path, $request); if (empty($processed) || !empty($exclude[$processed])) { // This resolves to the front page, which we already add. return NULL; } $this->currentPath->setPath($processed, $request); // Attempt to match this path to provide a fully built request. try { $request->attributes->add($this->router->matchRequest($request)); return $request; } catch (ParamNotConvertedException $e) { return NULL; } catch (ResourceNotFoundException $e) { return NULL; } catch (MethodNotAllowedException $e) { return NULL; } catch (AccessDeniedHttpException $e) { return NULL; } }
Please login to continue.