1
0
Fork 0
mirror of synced 2024-06-03 11:24:48 +12:00
appwrite/src/Appwrite/Template/Template.php
2020-03-24 19:56:32 +02:00

99 lines
2.4 KiB
PHP

<?php
namespace Appwrite\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($minify = true)
{
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.
*/
public static function parseURL($url)
{
return parse_url($url);
}
/**
* Un-Parse URL.
*
* Convert PHP array to query string
*
* @param $url
*
* @return string
*/
public static 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
*/
public static function mergeQuery($query1, array $query2)
{
$parsed = [];
parse_str($query1, $parsed);
$parsed = array_merge($parsed, $query2);
return http_build_query($parsed);
}
}