diff --git a/core/core.services.yml b/core/core.services.yml
index 20b8651..fd48543 100644
--- a/core/core.services.yml
+++ b/core/core.services.yml
@@ -205,6 +205,10 @@ services:
   request:
     class: Symfony\Component\HttpFoundation\Request
     synthetic: true
+  request_info:
+    class: Drupal\Core\Routing\RequestInfo
+    calls:
+      - [setRequest, ['@?request=']]
   event_dispatcher:
     class: Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher
     arguments: ['@service_container']
diff --git a/core/lib/Drupal/Core/Routing/RequestInfo.php b/core/lib/Drupal/Core/Routing/RequestInfo.php
new file mode 100644
index 0000000..a6b3491
--- /dev/null
+++ b/core/lib/Drupal/Core/Routing/RequestInfo.php
@@ -0,0 +1,72 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\RequestInfo.
+ */
+
+namespace Drupal;
+
+use Symfony\Cmf\Component\Routing\RouteObjectInterface;
+use Symfony\Component\HttpFoundation\Request;
+
+/**
+ * Provides a convenient way to access request information.
+ */
+class RequestInfo {
+
+  /**
+   * The current request.
+   *
+   * @var \Symfony\Component\HttpFoundation\Request
+   */
+  protected $request;
+
+  /**
+   * Sets the request object to use.
+   *
+   * @param \Symfony\Component\HttpFoundation\Request $request
+   *   The request object.
+   */
+  public function setRequest(Request $request) {
+    $this->request = $request;
+  }
+
+  /**
+   * Gets the current request.
+   *
+   * @return \Symfony\Component\HttpFoundation\Request
+   */
+  public function getRequest() {
+    if (!$this->request) {
+      $this->setRequest(\Drupal::request());
+    }
+    return $this->request;
+  }
+
+  /**
+   * Get the route name.
+   *
+   * @return string
+   */
+  public function getRouteName() {
+    return $this->getRequest()->attributes->get(RouteObjectInterface::ROUTE_NAME);
+  }
+
+  /**
+   * Get the route object.
+   *
+   * @return \Symfony\Component\Routing\Route
+   */
+  public function getRouteObject() {
+    return $this->getRequest()->attributes->get(RouteObjectInterface::ROUTE_OBJECT);
+  }
+
+  /**
+   * Gets the internal path.
+   */
+  public function getSystemPath() {
+    return $this->getRequest()->attributes->get('_system_path');
+  }
+
+}
