1
0
Fork 0
mirror of synced 2024-07-01 04:30:59 +12:00
appwrite/src/Template/Template.php

95 lines
2.4 KiB
PHP
Raw Normal View History

2019-05-09 18:54:39 +12:00
<?php
namespace Template;
use Exception;
use Utopia\View;
class Template extends View
{
/**
* Render
*
* Render view .phtml template file if template has not been set as rendered yet using $this->setRendered(true).
* In case path is not readable throws Exception.
*
* @return string
* @throws Exception
*/
public function render()
{
if ($this->rendered) { // Don't render any template
return '';
}
if (is_readable($this->path)) {
$template = file_get_contents($this->path); // Include template file
}
else {
throw new Exception('"' . $this->path . '" template is not readable or not found');
}
$template = str_replace(array_keys($this->params), array_values($this->params), $template);
return $template;
}
/**
* Parse URL
*
* Parse URL string to array
*
* @param $url
* @return mixed On seriously malformed URLs, parse_url() may return FALSE.
*/
static public function parseURL($url)
{
return parse_url($url);
}
/**
* Un-Parse URL
*
* Convert PHP array to query string
*
* @param $url
* @return string
*/
static public function unParseURL(array $url)
{
$scheme = isset($url['scheme']) ? $url['scheme'] . '://' : '';
$host = isset($url['host']) ? $url['host'] : '';
$port = isset($url['port']) ? ':' . $url['port'] : '';
$user = isset($url['user']) ? $url['user'] : '';
$pass = isset($url['pass']) ? ':' . $url['pass'] : '';
$pass = ($user || $pass) ? "$pass@" : '';
$path = isset($url['path']) ? $url['path'] : '';
$query = isset($url['query']) && !empty($url['query']) ? '?' . $url['query'] : '';
$fragment = isset($url['fragment']) ? '#' . $url['fragment'] : '';
return $scheme . $user . $pass . $host . $port . $path . $query . $fragment;
}
/**
* Merge Query
*
* Merge array of params to query string
*
* @param $query1
* @param array $query2
* @return string
*/
static public function mergeQuery($query1, array $query2)
{
$parsed = [];
parse_str($query1, $parsed);
$parsed = array_merge($parsed, $query2);
return http_build_query($parsed);
}
}