Esempio n. 1
0
 /**
  * Returns the URL of a view.
  *
  * @param Site $site
  * @param string $view_id The identifier of the view.
  * @param array|null $args The arguments to format the URL, if the URL uses a pattern.
  *
  * @return string
  * @throws \Exception
  */
 public static function resolve_view_url(Site $site, $view_id, $args = null)
 {
     if (isset(self::$view_url_cache[$view_id])) {
         return self::$view_url_cache[$view_id];
     }
     $target = $site->resolve_view_target($view_id);
     if (!$target) {
         return '#unknown-target-for-view-' . $view_id;
     }
     $url_pattern = $target->url_pattern;
     if (!Pattern::is_pattern($url_pattern)) {
         return self::$view_url_cache[$view_id] = $target->url;
     }
     return Pattern::from($url_pattern)->format($args);
 }