migrate to php8

This commit is contained in:
ivan shalganov
2023-02-06 23:49:54 +01:00
parent 4cdfd306d9
commit ba1bc18aba
9 changed files with 180 additions and 172 deletions

View File

@@ -9,6 +9,7 @@
*/
namespace Fenom;
use Fenom\Error\CompileException;
use Fenom\Error\UnexpectedTokenException;
/**
@@ -16,7 +17,7 @@ use Fenom\Error\UnexpectedTokenException;
* @package Fenom
*/
class Accessor {
public static $vars = array(
public static array $vars = array(
'get' => '$_GET',
'post' => '$_POST',
'session' => '$_SESSION',
@@ -32,10 +33,11 @@ class Accessor {
* @param string $var variable expression on PHP ('App::get("storage")->user')
* @param Tokenizer $tokens
* @param Template $tpl
* @param $is_var
* @param bool $is_var
* @return string
* @throws CompileException
*/
public static function parserVar($var, Tokenizer $tokens, Template $tpl, &$is_var)
public static function parserVar(string $var, Tokenizer $tokens, Template $tpl, bool &$is_var): string
{
$is_var = true;
return $tpl->parseVariable($tokens, $var);
@@ -47,7 +49,7 @@ class Accessor {
* @param Template $tpl
* @return string
*/
public static function parserCall($call, Tokenizer $tokens, Template $tpl)
public static function parserCall(string $call, Tokenizer $tokens, Template $tpl): string
{
return $call.$tpl->parseArgs($tokens);
}
@@ -56,10 +58,11 @@ class Accessor {
* @param string $prop fenom's property name
* @param Tokenizer $tokens
* @param Template $tpl
* @param $is_var
* @param bool $is_var
* @return string
* @throws CompileException
*/
public static function parserProperty($prop, Tokenizer $tokens, Template $tpl, &$is_var)
public static function parserProperty(string $prop, Tokenizer $tokens, Template $tpl, bool &$is_var): string
{
$is_var = true;
return self::parserVar('$tpl->getStorage()->'.$prop, $tokens, $tpl, $is_var);
@@ -71,7 +74,7 @@ class Accessor {
* @param Template $tpl
* @return string
*/
public static function parserMethod($method, Tokenizer $tokens, Template $tpl)
public static function parserMethod(string $method, Tokenizer $tokens, Template $tpl): string
{
return self::parserCall('$tpl->getStorage()->'.$method, $tokens, $tpl);
}
@@ -81,13 +84,14 @@ class Accessor {
* @param Tokenizer $tokens
* @param Template $tpl
* @return string
* @throws CompileException
*/
public static function getVar(Tokenizer $tokens, Template $tpl)
public static function getVar(Tokenizer $tokens, Template $tpl): string
{
$name = $tokens->prevToken()[Tokenizer::TEXT];
if(isset(self::$vars[$name])) {
$var = $tpl->parseVariable($tokens, self::$vars[$name]);
return "(isset($var) ? $var : null)";
return "(($var) ?? null)";
} else {
throw new UnexpectedTokenException($tokens->back());
}
@@ -98,7 +102,7 @@ class Accessor {
* @param Tokenizer $tokens
* @return string
*/
public static function tpl(Tokenizer $tokens)
public static function tpl(Tokenizer $tokens): string
{
$method = $tokens->skip('.')->need(T_STRING)->getAndNext();
if(method_exists('Fenom\Render', 'get'.$method)) {
@@ -111,7 +115,7 @@ class Accessor {
/**
* @return string
*/
public static function version()
public static function version(): string
{
return 'Fenom::VERSION';
}
@@ -120,9 +124,9 @@ class Accessor {
* @param Tokenizer $tokens
* @return string
*/
public static function constant(Tokenizer $tokens)
public static function constant(Tokenizer $tokens): string
{
$const = array($tokens->skip('.')->need(Tokenizer::MACRO_STRING)->getAndNext());
$const = [$tokens->skip('.')->need(Tokenizer::MACRO_STRING)->getAndNext()];
while($tokens->is('.')) {
$const[] = $tokens->next()->need(Tokenizer::MACRO_STRING)->getAndNext();
}
@@ -139,9 +143,9 @@ class Accessor {
* @param Template $tpl
* @return string
*/
public static function call(Tokenizer $tokens, Template $tpl)
public static function call(Tokenizer $tokens, Template $tpl): string
{
$callable = array($tokens->skip('.')->need(Tokenizer::MACRO_STRING)->getAndNext());
$callable = [$tokens->skip('.')->need(Tokenizer::MACRO_STRING)->getAndNext()];
while($tokens->is('.')) {
$callable[] = $tokens->next()->need(Tokenizer::MACRO_STRING)->getAndNext();
}
@@ -175,7 +179,7 @@ class Accessor {
* @param Template $tpl
* @return string
*/
public static function fetch(Tokenizer $tokens, Template $tpl)
public static function fetch(Tokenizer $tokens, Template $tpl): string
{
$tokens->skip('(');
$name = $tpl->parsePlainArg($tokens, $static);
@@ -188,7 +192,7 @@ class Accessor {
$tokens->next();
if($tokens->is('[')){
$vars = $tpl->parseArray($tokens) . ' + $var';
}elseif($tokens->is(T_VARIABLE)){
} elseif($tokens->is(T_VARIABLE)){
$vars = $tpl->parseExpr($tokens) . ' + $var';
}
} else {
@@ -202,9 +206,9 @@ class Accessor {
* Accessor {$.block.NAME}
* @param Tokenizer $tokens
* @param Template $tpl
* @return mixed
* @return string
*/
public static function block(Tokenizer $tokens, Template $tpl)
public static function block(Tokenizer $tokens, Template $tpl): string
{
if($tokens->is('.')) {
$name = $tokens->next()->get(Tokenizer::MACRO_STRING);