/**
* Compile handlebars template into PHP code.
*
* @param string $template handlebars template string
* @param array<string,array|string|integer> $options LightnCandy compile time and run time options, default is array('flags' => LightnCandy::FLAG_BESTPERFORMANCE)
*
* @return string|false Compiled PHP code when successed. If error happened and compile failed, return false.
*/
public static function compile($template, $options = array('flags' => self::FLAG_BESTPERFORMANCE))
{
$context = Context::create($options);
if (static::handleError($context)) {
return false;
}
$code = Compiler::compileTemplate($context, SafeString::escapeTemplate($template));
static::$lastParsed = Compiler::$lastParsed;
// return false when fatal error
if (static::handleError($context)) {
return false;
}
// Or, return full PHP render codes as string
return Compiler::composePHPRender($context, $code);
}