RouteProcessor.php in Config Entity Revisions 8.2
Namespace
Drupal\config_entity_revisions\RoutingFile
src/Routing/RouteProcessor.phpView source
<?php
namespace Drupal\config_entity_revisions\Routing;
use Drupal\Component\Utility\Crypt;
use Drupal\config_entity_revisions\ConfigEntityRevisionsConfigEntityContainerInterface;
use Drupal\config_entity_revisions\Entity\ConfigEntityRevisions;
use Drupal\Core\Render\BubbleableMetadata;
use Drupal\Core\RouteProcessor\OutboundRouteProcessorInterface;
use Symfony\Component\Routing\Route;
/**
* Processes the outbound route to add revision IDs to parameters.
*/
class RouteProcessor implements OutboundRouteProcessorInterface {
/**
* {@inheritdoc}
*/
public function processOutbound($route_name, Route $route, array &$parameters, BubbleableMetadata $bubbleable_metadata = NULL) {
$route_params = $route
->getOption('parameters');
if (empty($route_params['revision_id']) || !$route_params['revision_id']) {
return;
}
if (!empty($parameters['revision_id'])) {
return;
}
$revision_id = \Drupal::routeMatch()
->getParameter('revision_id');
if (empty($revision_id)) {
// Find the revisioned entity.
foreach (\Drupal::routeMatch()
->getParameters() as $param) {
if ($param instanceof ConfigEntityRevisionsConfigEntityContainerInterface) {
$revision_id = $param
->revisionedEntity()->loadedRevisionId;
break;
}
}
}
$parameters['revision_id'] = $revision_id;
}
}
Classes
Name | Description |
---|---|
RouteProcessor | Processes the outbound route to add revision IDs to parameters. |