diff --git a/core/modules/entity/entity.module b/core/modules/entity/entity.module
index 2e6a88c..9794ed4 100644
--- a/core/modules/entity/entity.module
+++ b/core/modules/entity/entity.module
@@ -413,6 +413,56 @@ function entity_uri($entity_type, $entity) {
 }
 
 /**
+ * Returns the URL of an entity.
+ *
+ * @param Drupal\entity\EntityInterface $entity
+ *   The entity for which to generate a path.
+ * @param array $options
+ *   An associative array of additional options to pass to the url() function.
+ *
+ * @return string|NULL
+ *   The URL of the entity, or NULL if this value is unavailable.
+ *
+ * @see Drupal\entity\EntityInterface::uri()
+ */
+function entity_url(EntityInterface $entity, array $options = array()) {
+  $uri = $entity->uri();
+
+  if (is_array($uri)) {
+    $options += $uri['options'];
+    return url($uri['path'], $options);
+  }
+}
+
+/**
+ * Format the URL of an entity as a HTML anchor tag.
+ *
+ * @param Drupal\entity\EntityInterface $entity
+ *   The entity for which to generate a path.
+ * @param $text
+ *   The link text for the anchor tag. Default to entity label.
+ * @param array $options
+ *   An associative array of additional options to pass to the url() function.
+ *
+ * @return string|NULL
+ *   The HTML markup for a link to the entity, or NULL if the value is
+ *   unavailable.
+ *
+ * @see Drupal\entity\EntityInterface::uri()
+ */
+function entity_l(EntityInterface $entity, $text = NULL, array $options = array()) {
+  $uri = $entity->uri();
+
+  if (is_array($uri)) {
+    $options += $uri['options'];
+    if (!isset($text)) {
+      $text = $entity->label();
+    }
+    return l($text, $uri['path'], $options);
+  }
+}
+
+/**
  * Returns the label of an entity.
  *
  * This is a wrapper for Drupal\entity\EntityInterface::label(). This function
diff --git a/core/modules/entity/lib/Drupal/entity/EntityInterface.php b/core/modules/entity/lib/Drupal/entity/EntityInterface.php
index c4c44c2..d3f195b 100644
--- a/core/modules/entity/lib/Drupal/entity/EntityInterface.php
+++ b/core/modules/entity/lib/Drupal/entity/EntityInterface.php
@@ -91,6 +91,9 @@ interface EntityInterface {
    *   An array containing the 'path' and 'options' keys used to build the URI
    *   of the entity, and matching the signature of url(). NULL if the entity
    *   has no URI of its own.
+   *
+   * @see entity_url()
+   * @see entity_l()
    */
   public function uri();
 
