Add predefined accessors Fenom::ACCESSOR_PROPERY and Fenom::ACCESSOR_METHOD

This commit is contained in:
bzick
2015-08-13 00:07:01 +03:00
parent bf44511a53
commit 4fe339ba21
4 changed files with 80 additions and 9 deletions

View File

@@ -28,16 +28,53 @@ class Accessor {
'env' => '$_ENV'
);
public static function parserVar($var, Tokenizer $tokens, Template $tpl, &$is_var) {
/**
* @param string $var variable expression on PHP ('App::get("storage")->user')
* @param Tokenizer $tokens
* @param Template $tpl
* @param $is_var
* @return string
*/
public static function parserVar($var, Tokenizer $tokens, Template $tpl, &$is_var)
{
$is_var = true;
return $tpl->parseVariable($tokens, $var);
}
public static function parserCall($call, Tokenizer $tokens, Template $tpl) {
/**
* @param string $call method name expression on PHP ('App::get("storage")->getUser')
* @param Tokenizer $tokens
* @param Template $tpl
* @return string
*/
public static function parserCall($call, Tokenizer $tokens, Template $tpl)
{
return $call.$tpl->parseArgs($tokens);
}
/**
* @param string $prop fenom's property name
* @param Tokenizer $tokens
* @param Template $tpl
* @param $is_var
* @return string
*/
public static function parserProperty($prop, Tokenizer $tokens, Template $tpl, &$is_var)
{
return self::parserVar('$tpl->getStorage()->'.$prop, $tokens, $tpl, $is_var);
}
/**
* @param string $method fenom's method name
* @param Tokenizer $tokens
* @param Template $tpl
* @return string
*/
public static function parserMethod($method, Tokenizer $tokens, Template $tpl)
{
return self::parserCall('$tpl->getStorage()->'.$method, $tokens, $tpl);
}
/**
* Accessor for global variables
* @param Tokenizer $tokens
@@ -70,6 +107,9 @@ class Accessor {
}
}
/**
* @return string
*/
public static function version()
{
return 'Fenom::VERSION';