<?php
class Contemplate {
private static $views = array ();
private static $data = array ();
private static $content;
private function output($buffer)
{
$search = array(
'/\>[^\S ]+/s', //strip whitespaces after tags, except space
'/[^\S ]+\</s', //strip whitespaces before tags, except space
'/(\s)+/s', // shorten multiple whitespace sequences
'/>(\s)+</',
);
$replace = array(
'>',
'<',
'\\1',
'> <',
);
return (preg_replace($search, $replace, $buffer));
}
public static function compose($views, array $data = NULL) {
/*
* render and output page
* @param
* $views - array of pages to render
* $data - array of inject data to pages
*/
if ($data) {
self::$data = $data;
}
self::$views = $views;
extract(self::$data);
ob_start();
foreach (self::$views as $value)
{
require VIEW_PATH . $value . '.php';
}
unset($value);
self::$content = ob_get_clean();
echo self::output(self::$content);
}
}//end class
preferences:
53.29 ms | 402 KiB | 5 Q