public static function template($file, array $options = []) {
		$cachePath = Libraries::get(true, 'resources') . '/tmp/cache/templates';
		$defaults = ['path' => $cachePath, 'fallback' => false];
		$options += $defaults;

		$stats = stat($file);

		$oname  = basename(dirname($file)) . '_' . basename($file, '.php');
		$oname .= '_' . ($stats['ino'] ?: hash('md5', $file));

		$template = "template_{$oname}_{$stats['mtime']}_{$stats['size']}.php";
		$template = "{$options['path']}/{$template}";

		if (file_exists($template)) {
			return $template;
		}
		$compiled = static::compile(file_get_contents($file));

		if (is_writable($cachePath) && file_put_contents($template, $compiled) !== false) {
			foreach (glob("{$options['path']}/template_{$oname}_*.php", GLOB_NOSORT) as $expired) {
				if ($expired !== $template) {
					unlink($expired);
				}
			}
			return $template;
		}
		if ($options['fallback']) {
			return $file;
		}
		throw new TemplateException("Could not write compiled template `{$template}` to cache.");
	}
public static function template($file, array $options = []) {
		$cachePath = Libraries::get(true, 'resources') . '/tmp/cache/templates';
		$defaults = ['path' => $cachePath, 'fallback' => false];
		$options += $defaults;

		$stats = stat($file);

		$oname  = basename(dirname($file)) . '_' . basename($file, '.php');
		$oname .= '_' . ($stats['ino'] ?: hash('md5', $file));

		$template = "template_{$oname}_{$stats['mtime']}_{$stats['size']}.php";
		$template = "{$options['path']}/{$template}";

		if (file_exists($template)) {
			return $template;
		}
		$compiled = static::compile(file_get_contents($file));

		if (is_writable($cachePath) && file_put_contents($template, $compiled) !== false) {
			foreach (glob("{$options['path']}/template_{$oname}_*.php", GLOB_NOSORT) as $expired) {
				if ($expired !== $template) {
					unlink($expired);
				}
			}
			return $template;
		}
		if ($options['fallback']) {
			return $file;
		}
		throw new TemplateException("Could not write compiled template `{$template}` to cache.");
	}
public static function template ( $ file , array $ options = [ ] ) { $ cachePath = Libraries :: get ( true , 'resources' ) . '/tmp/cache/templates' ; $ defaults = [ 'path' => $ cachePath , 'fallback' => false ] ; $ options += $ defaults ; $ stats = stat ( $ file ) ; $ oname = basename ( dirname ( $ file ) ) . '_' . basename ( $ file , '.php' ) ; $ oname .= '_' . ( $ stats [ 'ino' ] ? : hash ( 'md5' , $ file ) ) ; $ template = "template_{$oname}_{$stats['mtime']}_{$stats['size']}.php" ; $ template = "{$options['path']}/{$template}" ; if ( file_exists ( $ template ) ) { return $ template ; } $ compiled = static :: compile ( file_get_contents ( $ file ) ) ; if ( is_writable ( $ cachePath ) && file_put_contents ( $ template , $ compiled ) !== false ) { foreach ( glob ( "{$options['path']}/template_{$oname}_*.php" , GLOB_NOSORT ) as $ expired ) { if ( $ expired !== $ template ) { unlink ( $ expired ) ; } } return $ template ; } if ( $ options [ 'fallback' ] ) { return $ file ; } throw new TemplateException ( "Could not write compiled template `{$template}` to cache." ) ; }
Compiles a template and writes it to a cache file, which is used for inclusion.

@param string $file The full path to the template that will be compiled.
@param array $options Options for compilation include:
- `path`: Path where the compiled template should be written.
- `fallback`: Boolean indicating that if the compilation failed for some
reason (e.g. `path` is not writable), that the compiled template
should still be returned and no exception be thrown.
@return string The compiled template.
Compiles a template and writes it to a cache file which is used for inclusion .