3v4l.org

run code in 300+ PHP versions simultaneously
<?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