mirror of
https://github.com/fenom-template/fenom.git
synced 2023-08-10 21:13:07 +03:00
Format code
This commit is contained in:
@@ -312,7 +312,8 @@ class Fenom
|
|||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getPreFilters() {
|
public function getPreFilters()
|
||||||
|
{
|
||||||
return $this->pre_filters;
|
return $this->pre_filters;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -328,7 +329,8 @@ class Fenom
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function getPostFilters() {
|
public function getPostFilters()
|
||||||
|
{
|
||||||
return $this->post_filters;
|
return $this->post_filters;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -343,7 +345,8 @@ class Fenom
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function getFilters() {
|
public function getFilters()
|
||||||
|
{
|
||||||
return $this->filters;
|
return $this->filters;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -197,7 +197,7 @@ class Template extends Render
|
|||||||
{
|
{
|
||||||
$end = $pos = 0;
|
$end = $pos = 0;
|
||||||
$this->escape = $this->_options & Fenom::AUTO_ESCAPE;
|
$this->escape = $this->_options & Fenom::AUTO_ESCAPE;
|
||||||
foreach($this->_fenom->getPreFilters() as $filter) {
|
foreach ($this->_fenom->getPreFilters() as $filter) {
|
||||||
$this->_src = call_user_func($filter, $this->_src, $this);
|
$this->_src = call_user_func($filter, $this->_src, $this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -279,7 +279,7 @@ class Template extends Render
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->addDepend($this); // for 'verify' performance
|
$this->addDepend($this); // for 'verify' performance
|
||||||
foreach($this->_fenom->getPostFilters() as $filter) {
|
foreach ($this->_fenom->getPostFilters() as $filter) {
|
||||||
$this->_body = call_user_func($filter, $this->_body, $this);
|
$this->_body = call_user_func($filter, $this->_body, $this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -610,27 +610,28 @@ class Template extends Render
|
|||||||
* @return string
|
* @return string
|
||||||
* @throws Error\UnexpectedTokenException
|
* @throws Error\UnexpectedTokenException
|
||||||
*/
|
*/
|
||||||
public function parseExp(Tokenizer $tokens, $required = false) {
|
public function parseExp(Tokenizer $tokens, $required = false)
|
||||||
|
{
|
||||||
$exp = array();
|
$exp = array();
|
||||||
$var = false; // last term was: true - variable, false - mixed
|
$var = false; // last term was: true - variable, false - mixed
|
||||||
$op = false; // last exp was operator
|
$op = false; // last exp was operator
|
||||||
$cond = false; // was conditional operator
|
$cond = false; // was conditional operator
|
||||||
while($tokens->valid()) {
|
while ($tokens->valid()) {
|
||||||
// parse term
|
// parse term
|
||||||
$term = $this->parseTerm($tokens, $var);
|
$term = $this->parseTerm($tokens, $var);
|
||||||
if($term !== false) {
|
if ($term !== false) {
|
||||||
$exp[] = $term;
|
$exp[] = $term;
|
||||||
$op = false;
|
$op = false;
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!$tokens->valid()) {
|
if (!$tokens->valid()) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// parse operator
|
// parse operator
|
||||||
if($tokens->is(Tokenizer::MACRO_BINARY)) {
|
if ($tokens->is(Tokenizer::MACRO_BINARY)) {
|
||||||
if ($tokens->is(Tokenizer::MACRO_COND)) {
|
if ($tokens->is(Tokenizer::MACRO_COND)) {
|
||||||
if ($cond) {
|
if ($cond) {
|
||||||
break;
|
break;
|
||||||
@@ -638,12 +639,12 @@ class Template extends Render
|
|||||||
$cond = true;
|
$cond = true;
|
||||||
}
|
}
|
||||||
$op = $tokens->getAndNext();
|
$op = $tokens->getAndNext();
|
||||||
} elseif($tokens->is(Tokenizer::MACRO_EQUALS)) {
|
} elseif ($tokens->is(Tokenizer::MACRO_EQUALS)) {
|
||||||
if(!$var) {
|
if (!$var) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$op = $tokens->getAndNext();
|
$op = $tokens->getAndNext();
|
||||||
} elseif($tokens->is(T_STRING)) {
|
} elseif ($tokens->is(T_STRING)) {
|
||||||
if (!$exp) {
|
if (!$exp) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -657,12 +658,12 @@ class Template extends Render
|
|||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} elseif($tokens->is('~')) {
|
} elseif ($tokens->is('~')) {
|
||||||
// string concat coming soon
|
// string concat coming soon
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if($op) {
|
if ($op) {
|
||||||
$exp[] = $op;
|
$exp[] = $op;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -686,45 +687,46 @@ class Template extends Render
|
|||||||
* @throws Error\TokenizeException
|
* @throws Error\TokenizeException
|
||||||
* @throws \Exception
|
* @throws \Exception
|
||||||
*/
|
*/
|
||||||
public function parseTerm(Tokenizer $tokens, &$is_var = false) {
|
public function parseTerm(Tokenizer $tokens, &$is_var = false)
|
||||||
|
{
|
||||||
$is_var = false;
|
$is_var = false;
|
||||||
$unary = "";
|
$unary = "";
|
||||||
term: {
|
term: {
|
||||||
if($tokens->is(T_LNUMBER, T_DNUMBER)) {
|
if ($tokens->is(T_LNUMBER, T_DNUMBER)) {
|
||||||
return $unary.$this->parseScalar($tokens, true);
|
return $unary . $this->parseScalar($tokens, true);
|
||||||
} elseif($tokens->is(T_CONSTANT_ENCAPSED_STRING, '"', T_ENCAPSED_AND_WHITESPACE)) {
|
} elseif ($tokens->is(T_CONSTANT_ENCAPSED_STRING, '"', T_ENCAPSED_AND_WHITESPACE)) {
|
||||||
if($unary) {
|
if ($unary) {
|
||||||
throw new UnexpectedTokenException($tokens->back());
|
throw new UnexpectedTokenException($tokens->back());
|
||||||
}
|
}
|
||||||
return $this->parseScalar($tokens, true);
|
return $this->parseScalar($tokens, true);
|
||||||
} elseif($tokens->is(T_VARIABLE)) {
|
} elseif ($tokens->is(T_VARIABLE)) {
|
||||||
$var = $this->parseVar($tokens);
|
$var = $this->parseVar($tokens);
|
||||||
if ($tokens->is(Tokenizer::MACRO_INCDEC, "|", "!", "?")) {
|
if ($tokens->is(Tokenizer::MACRO_INCDEC, "|", "!", "?")) {
|
||||||
return $unary.$this->parseVariable($tokens, 0, $var);
|
return $unary . $this->parseVariable($tokens, 0, $var);
|
||||||
} elseif($tokens->is("(") && $tokens->hasBackList(T_STRING)) { // method call
|
} elseif ($tokens->is("(") && $tokens->hasBackList(T_STRING)) { // method call
|
||||||
return $unary.$this->parseVariable($tokens, 0, $var);
|
return $unary . $this->parseVariable($tokens, 0, $var);
|
||||||
} elseif($unary) {
|
} elseif ($unary) {
|
||||||
return $unary.$var;
|
return $unary . $var;
|
||||||
} else {
|
} else {
|
||||||
$is_var = true;
|
$is_var = true;
|
||||||
return $var;
|
return $var;
|
||||||
}
|
}
|
||||||
} elseif($tokens->is(Tokenizer::MACRO_INCDEC)) {
|
} elseif ($tokens->is(Tokenizer::MACRO_INCDEC)) {
|
||||||
return $unary.$this->parseVariable($tokens);
|
return $unary . $this->parseVariable($tokens);
|
||||||
} elseif($tokens->is("(")) {
|
} elseif ($tokens->is("(")) {
|
||||||
$tokens->next();
|
$tokens->next();
|
||||||
$exp = $unary."(" . $this->parseExp($tokens, true).")";
|
$exp = $unary . "(" . $this->parseExp($tokens, true) . ")";
|
||||||
$tokens->need(")")->next();
|
$tokens->need(")")->next();
|
||||||
return $exp;
|
return $exp;
|
||||||
} elseif($tokens->is(Tokenizer::MACRO_UNARY)) {
|
} elseif ($tokens->is(Tokenizer::MACRO_UNARY)) {
|
||||||
if($unary) {
|
if ($unary) {
|
||||||
throw new UnexpectedTokenException($tokens);
|
throw new UnexpectedTokenException($tokens);
|
||||||
}
|
}
|
||||||
$unary = $tokens->getAndNext();
|
$unary = $tokens->getAndNext();
|
||||||
goto term;
|
goto term;
|
||||||
} elseif($tokens->is(T_STRING)) {
|
} elseif ($tokens->is(T_STRING)) {
|
||||||
if ($tokens->isSpecialVal()) {
|
if ($tokens->isSpecialVal()) {
|
||||||
return $unary.$tokens->getAndNext();
|
return $unary . $tokens->getAndNext();
|
||||||
} elseif ($tokens->isNext("(") && !$tokens->getWhitespace()) {
|
} elseif ($tokens->isNext("(") && !$tokens->getWhitespace()) {
|
||||||
$func = $this->_fenom->getModifier($tokens->current(), $this);
|
$func = $this->_fenom->getModifier($tokens->current(), $this);
|
||||||
if (!$func) {
|
if (!$func) {
|
||||||
@@ -733,29 +735,29 @@ class Template extends Render
|
|||||||
$tokens->next();
|
$tokens->next();
|
||||||
$func = $func . $this->parseArgs($tokens);
|
$func = $func . $this->parseArgs($tokens);
|
||||||
if ($tokens->is('|')) {
|
if ($tokens->is('|')) {
|
||||||
return $unary.$this->parseModifier($tokens, $func);
|
return $unary . $this->parseModifier($tokens, $func);
|
||||||
} else {
|
} else {
|
||||||
return $unary.$func;
|
return $unary . $func;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} elseif($tokens->is(T_ISSET, T_EMPTY)) {
|
} elseif ($tokens->is(T_ISSET, T_EMPTY)) {
|
||||||
$func = $tokens->getAndNext();
|
$func = $tokens->getAndNext();
|
||||||
if ($tokens->is("(") && $tokens->isNext(T_VARIABLE)) {
|
if ($tokens->is("(") && $tokens->isNext(T_VARIABLE)) {
|
||||||
$tokens->next();
|
$tokens->next();
|
||||||
$exp = $func . "(" . $this->parseVar($tokens) . ")";
|
$exp = $func . "(" . $this->parseVar($tokens) . ")";
|
||||||
$tokens->need(')')->next();
|
$tokens->need(')')->next();
|
||||||
return $unary.$exp;
|
return $unary . $exp;
|
||||||
} else {
|
} else {
|
||||||
throw new TokenizeException("Unexpected token " . $tokens->getNext() . ", isset() and empty() accept only variables");
|
throw new TokenizeException("Unexpected token " . $tokens->getNext() . ", isset() and empty() accept only variables");
|
||||||
}
|
}
|
||||||
} elseif($tokens->is('[')) {
|
} elseif ($tokens->is('[')) {
|
||||||
if($unary) {
|
if ($unary) {
|
||||||
throw new UnexpectedTokenException($tokens->back());
|
throw new UnexpectedTokenException($tokens->back());
|
||||||
}
|
}
|
||||||
return $this->parseArray($tokens);
|
return $this->parseArray($tokens);
|
||||||
} elseif($unary) {
|
} elseif ($unary) {
|
||||||
$tokens->back();
|
$tokens->back();
|
||||||
throw new UnexpectedTokenException($tokens);
|
throw new UnexpectedTokenException($tokens);
|
||||||
} else {
|
} else {
|
||||||
@@ -1142,9 +1144,10 @@ class Template extends Render
|
|||||||
* @param Tokenizer $tokens
|
* @param Tokenizer $tokens
|
||||||
* @param null $first_member
|
* @param null $first_member
|
||||||
*/
|
*/
|
||||||
public function parseConcat(Tokenizer $tokens, $first_member = null) {
|
public function parseConcat(Tokenizer $tokens, $first_member = null)
|
||||||
|
{
|
||||||
$concat = array();
|
$concat = array();
|
||||||
if($first_member) {
|
if ($first_member) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -328,7 +328,7 @@ class Tokenizer
|
|||||||
* @return mixed
|
* @return mixed
|
||||||
* @throws UnexpectedTokenException
|
* @throws UnexpectedTokenException
|
||||||
*/
|
*/
|
||||||
public function getAndNext(/* $token1, ... */)
|
public function getAndNext( /* $token1, ... */)
|
||||||
{
|
{
|
||||||
if ($this->curr) {
|
if ($this->curr) {
|
||||||
$cur = $this->curr[1];
|
$cur = $this->curr[1];
|
||||||
|
@@ -115,7 +115,8 @@ class FenomTest extends \Fenom\TestCase
|
|||||||
// $this->assertSame($this->fenom->getOptions(), $flags & ~$option);
|
// $this->assertSame($this->fenom->getOptions(), $flags & ~$option);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testFilter() {
|
public function testFilter()
|
||||||
|
{
|
||||||
$punit = $this;
|
$punit = $this;
|
||||||
$this->fenom->addPreFilter(function ($src, $tpl) use ($punit) {
|
$this->fenom->addPreFilter(function ($src, $tpl) use ($punit) {
|
||||||
$this->assertInstanceOf('Fenom\Template', $tpl);
|
$this->assertInstanceOf('Fenom\Template', $tpl);
|
||||||
|
Reference in New Issue
Block a user