From 0070ad79c009c2052f186ce2239843f2713fee06 Mon Sep 17 00:00:00 2001 From: Christian Blanquera Date: Mon, 21 Sep 2015 18:49:08 +0800 Subject: [PATCH] phpcs approval MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit “oh the spacing!” --- src/Handlebars/ChildContext.php | 56 ++++---- src/Handlebars/Handlebars.php | 219 +++++++++++++++++--------------- 2 files changed, 147 insertions(+), 128 deletions(-) diff --git a/src/Handlebars/ChildContext.php b/src/Handlebars/ChildContext.php index 58aea12..cbbc67f 100644 --- a/src/Handlebars/ChildContext.php +++ b/src/Handlebars/ChildContext.php @@ -41,20 +41,22 @@ namespace Handlebars; class ChildContext extends Context { - protected $parentContext = null; - - /** - * Sets a parent context in which - * we will case for the ../ in get() - * - * @param Context - * @return void - */ - public function setParent(Context $parent) { - $this->parentContext = $parent; - } - - /** + protected $parentContext = null; + + /** + * Sets a parent context in which + * we will case for the ../ in get() + * + * @param Context $parent parent context + * + * @return void + */ + public function setParent(Context $parent) + { + $this->parentContext = $parent; + } + + /** * Get a available from current context * Supported types : * variable , ../variable , variable.variable , variable.[variable] , . @@ -69,17 +71,19 @@ class ChildContext extends Context */ public function get($variableName, $strict = false) { - //if the variable name starts with a ../ - //and we have a parent - if(strpos($variableName, '../') === 0 && $this->parentContext instanceof Context) { - //just remove the first ../ - $variableName = substr($variableName, 3); - - //and let the parent context handle the rest - return $this->parentContext->get($variableName, $strict); - } - - //otherwise, it's business as usual - return parent::get($variableName, $strict); + //if the variable name starts with a ../ + //and we have a parent + if (strpos($variableName, '../') === 0 + && $this->parentContext instanceof Context + ) { + //just remove the first ../ + $variableName = substr($variableName, 3); + + //and let the parent context handle the rest + return $this->parentContext->get($variableName, $strict); + } + + //otherwise, it's business as usual + return parent::get($variableName, $strict); } } diff --git a/src/Handlebars/Handlebars.php b/src/Handlebars/Handlebars.php index fe15525..b0513eb 100755 --- a/src/Handlebars/Handlebars.php +++ b/src/Handlebars/Handlebars.php @@ -39,7 +39,7 @@ class Handlebars const VERSION = '1.0.0'; /** - * factory method + * Factory method * * @param array $options see __construct's options parameter * @@ -55,41 +55,57 @@ class Handlebars } /** + * Current tokenizer instance + * * @var Tokenizer */ private $_tokenizer; /** + * Current parser instance + * * @var Parser */ private $_parser; /** + * Current helper list + * * @var Helpers */ private $_helpers; /** + * Current loader instance + * * @var Loader */ private $_loader; /** + * Current partial loader instance + * * @var Loader */ private $_partialsLoader; /** + * Current cache instance + * * @var Cache */ private $_cache; /** + * The escape method + * * @var callable escape function to use */ private $_escape = 'htmlspecialchars'; /** + * Parameters for the escpae method above + * * @var array parametes to pass to escape function */ private $_escapeArgs = array( @@ -165,8 +181,8 @@ class Handlebars * @param mixed $data data to use as context * * @return string Rendered template - * @see Handlebars::loadTemplate - * @see Template::render + * @see Handlebars::loadTemplate + * @see Template::render */ public function render($template, $data) { @@ -235,8 +251,8 @@ class Handlebars { return $this->getHelpers()->has($name); } - - /** + + /** * Add a new helper. * * @param string $name helper name @@ -245,100 +261,99 @@ class Handlebars * @return void */ public function registerHelper($name, $helper) - { - $this->addHelper($name, function($template, $context, $arg) use ($helper) - { - $args = $template->parseArguments($arg); - $named = $template->parseNamedArguments($arg); - - foreach($args as $i => $arg) { - //if it's literally string - if($arg instanceof StringWrapper) { - //we have no problems here - $args[$i] = (string) $arg; - continue; - } - - //not sure what to do if it's not a string or StringWrapper - if(!is_string($arg)) { - continue; - } - - //it's a variable and we need to figure out the value of it - $args[$i] = $context->get($arg); - } - - //push the options - $args[] = array( - //special fields - 'data' => array( - 'index' => $context->get('@index'), - 'key' => $context->get('@key'), - 'first' => $context->get('@first'), - 'last' => $context->get('@last')), - // Named arguments - 'hash' => $named, - // A renderer for block helper - 'fn' => function($inContext = null) use($context, $template) - { - $defined = !!$inContext; - - if(!$defined) { - $inContext = $context; - $inContext->push($inContext->last()); - } else if (!$inContext instanceof Context) { - $inContext = new ChildContext($inContext); - $inContext->setParent($context); - } - - $template->setStopToken('else'); - $buffer = $template->render($inContext); - $template->setStopToken(false); - //what if it's a loop ? - $template->rewind(); - //What's the point of this again? - //I mean in this context (literally) - //$template->discard($inContext); - - if($defined) { - $inContext->pop(); - } - - return $buffer; - }, - - // A render for the else block - 'inverse' => function($inContext = null) use($context, $template) - { - $defined = !!$inContext; - - if(!$defined) { - $inContext = $context; - $inContext->push($inContext->last()); - } else if (!$inContext instanceof Context) { - $inContext = new ChildContext($inContext); - $inContext->setParent($context); - } - - $template->setStopToken('else'); - $template->discard($inContext); - $template->setStopToken(false); - $buffer = $template->render($inContext); - - if($defined) { - $inContext->pop(); - } - - return $buffer; - }, - - // The current context. - 'context' => $context, - // The current template - 'template' => $template); - - return call_user_func_array($helper, $args); - }); + { + $callback = function ($template, $context, $arg) use ($helper) { + $args = $template->parseArguments($arg); + $named = $template->parseNamedArguments($arg); + + foreach ($args as $i => $arg) { + //if it's literally string + if ($arg instanceof StringWrapper) { + //we have no problems here + $args[$i] = (string) $arg; + continue; + } + + //not sure what to do if it's not a string or StringWrapper + if (!is_string($arg)) { + continue; + } + + //it's a variable and we need to figure out the value of it + $args[$i] = $context->get($arg); + } + + //push the options + $args[] = array( + //special fields + 'data' => array( + 'index' => $context->get('@index'), + 'key' => $context->get('@key'), + 'first' => $context->get('@first'), + 'last' => $context->get('@last')), + // Named arguments + 'hash' => $named, + // A renderer for block helper + 'fn' => function ($inContext = null) use ($context, $template) { + $defined = !!$inContext; + + if (!$defined) { + $inContext = $context; + $inContext->push($inContext->last()); + } else if (!$inContext instanceof Context) { + $inContext = new ChildContext($inContext); + $inContext->setParent($context); + } + + $template->setStopToken('else'); + $buffer = $template->render($inContext); + $template->setStopToken(false); + //what if it's a loop ? + $template->rewind(); + //What's the point of this again? + //I mean in this context (literally) + //$template->discard($inContext); + + if ($defined) { + $inContext->pop(); + } + + return $buffer; + }, + + // A render for the else block + 'inverse' => function ($inContext = null) use ($context, $template) { + $defined = !!$inContext; + + if (!$defined) { + $inContext = $context; + $inContext->push($inContext->last()); + } else if (!$inContext instanceof Context) { + $inContext = new ChildContext($inContext); + $inContext->setParent($context); + } + + $template->setStopToken('else'); + $template->discard($inContext); + $template->setStopToken(false); + $buffer = $template->render($inContext); + + if ($defined) { + $inContext->pop(); + } + + return $buffer; + }, + + // The current context. + 'context' => $context, + // The current template + 'template' => $template); + + return call_user_func_array($helper, $args); + }; + + $this->addHelper($name, $callback); } /** @@ -366,7 +381,7 @@ class Handlebars } /** - * get current loader + * Get current loader * * @return Loader */ @@ -392,7 +407,7 @@ class Handlebars } /** - * get current partials loader + * Get current partials loader * * @return Loader */ @@ -618,7 +633,7 @@ class Handlebars } /** - * try to tokenize source, or get them from cache if available + * Try to tokenize source, or get them from cache if available * * @param string $source handlebars source code *