Issue #2236245 by znerol: Use request stack in system manager.

8.0.x
webchick 2014-04-08 14:59:32 -07:00
parent b5ac743446
commit 0469858911
2 changed files with 15 additions and 23 deletions

View File

@ -11,7 +11,7 @@ use Drupal\Core\Entity\EntityManagerInterface;
use Symfony\Cmf\Component\Routing\RouteObjectInterface;
use Drupal\Core\Database\Connection;
use Drupal\Core\Extension\ModuleHandlerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;
/**
* System Manager Service.
@ -39,6 +39,13 @@ class SystemManager {
*/
protected $menuLinkStorage;
/**
* The request stack.
*
* @var \Symfony\Component\HttpFoundation\RequestStack
*/
protected $requestStack;
/**
* A static cache of menu items.
*
@ -61,13 +68,6 @@ class SystemManager {
*/
const REQUIREMENT_ERROR = 2;
/**
* The request object.
*
* @var \Symfony\Component\HttpFoundation\Request
*/
protected $request;
/**
* Constructs a SystemManager object.
*
@ -77,21 +77,14 @@ class SystemManager {
* The database connection.
* @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager
* The entity manager.
* @param \Symfony\Component\HttpFoundation\RequestStack
* The request stack.
*/
public function __construct(ModuleHandlerInterface $module_handler, Connection $database, EntityManagerInterface $entity_manager) {
public function __construct(ModuleHandlerInterface $module_handler, Connection $database, EntityManagerInterface $entity_manager, RequestStack $request_stack) {
$this->moduleHandler = $module_handler;
$this->database = $database;
$this->menuLinkStorage = $entity_manager->getStorage('menu_link');
}
/**
* Sets the current request.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* The request object.
*/
public function setRequest(Request $request) {
$this->request = $request;
$this->requestStack = $request_stack;
}
/**
@ -178,7 +171,8 @@ class SystemManager {
* A render array suitable for drupal_render.
*/
public function getBlockContents() {
$route_name = $this->request->attributes->get(RouteObjectInterface::ROUTE_NAME);
$request = $this->requestStack->getCurrentRequest();
$route_name = $request->attributes->get(RouteObjectInterface::ROUTE_NAME);
$items = $this->menuLinkStorage->loadByProperties(array('route_name' => $route_name));
$item = reset($items);
if ($content = $this->getAdminBlock($item)) {

View File

@ -5,9 +5,7 @@ services:
- { name: access_check, applies_to: _access_system_cron }
system.manager:
class: Drupal\system\SystemManager
arguments: ['@module_handler', '@database', '@entity.manager']
calls:
- [setRequest, ['@?request=']]
arguments: ['@module_handler', '@database', '@entity.manager', '@request_stack']
system.breadcrumb.default:
class: Drupal\system\PathBasedBreadcrumbBuilder
arguments: ['@request', '@access_manager', '@router', '@path_processor_manager', '@config.factory', '@title_resolver', '@current_user']