mirror of
https://github.com/Mibew/handlebars.php.git
synced 2025-05-03 18:43:07 +03:00
Pass an instance of \Handlebars\Arguments to a helper
This commit is contained in:
parent
592a01c4b9
commit
19c78888ce
@ -31,10 +31,10 @@ interface Helper
|
|||||||
/**
|
/**
|
||||||
* Execute the helper
|
* Execute the helper
|
||||||
*
|
*
|
||||||
* @param \Handlebars\Template $template The template instance
|
* @param \Handlebars\Template $template The template instance
|
||||||
* @param \Handlebars\Context $context The current context
|
* @param \Handlebars\Context $context The current context
|
||||||
* @param array $args The arguments passed the the helper
|
* @param \Handlebars\Arguments $args The arguments passed the the helper
|
||||||
* @param string $source The source
|
* @param string $source The source
|
||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
|
@ -41,10 +41,10 @@ class BindAttrHelper implements Helper
|
|||||||
/**
|
/**
|
||||||
* Execute the helper
|
* Execute the helper
|
||||||
*
|
*
|
||||||
* @param \Handlebars\Template $template The template instance
|
* @param \Handlebars\Template $template The template instance
|
||||||
* @param \Handlebars\Context $context The current context
|
* @param \Handlebars\Context $context The current context
|
||||||
* @param array $args The arguments passed the the helper
|
* @param \Handlebars\Arguments $args The arguments passed the the helper
|
||||||
* @param string $source The source
|
* @param string $source The source
|
||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
|
@ -43,16 +43,17 @@ class EachHelper implements Helper
|
|||||||
/**
|
/**
|
||||||
* Execute the helper
|
* Execute the helper
|
||||||
*
|
*
|
||||||
* @param \Handlebars\Template $template The template instance
|
* @param \Handlebars\Template $template The template instance
|
||||||
* @param \Handlebars\Context $context The current context
|
* @param \Handlebars\Context $context The current context
|
||||||
* @param array $args The arguments passed the the helper
|
* @param \Handlebars\Arguments $args The arguments passed the the helper
|
||||||
* @param string $source The source
|
* @param string $source The source
|
||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function execute(Template $template, Context $context, $args, $source)
|
public function execute(Template $template, Context $context, $args, $source)
|
||||||
{
|
{
|
||||||
$tmp = $context->get($args);
|
$positionalArgs = $args->getPositionalArguments();
|
||||||
|
$tmp = $context->get($positionalArgs[0]);
|
||||||
$buffer = '';
|
$buffer = '';
|
||||||
|
|
||||||
if (!$tmp) {
|
if (!$tmp) {
|
||||||
|
@ -41,20 +41,17 @@ class IfHelper implements Helper
|
|||||||
/**
|
/**
|
||||||
* Execute the helper
|
* Execute the helper
|
||||||
*
|
*
|
||||||
* @param \Handlebars\Template $template The template instance
|
* @param \Handlebars\Template $template The template instance
|
||||||
* @param \Handlebars\Context $context The current context
|
* @param \Handlebars\Context $context The current context
|
||||||
* @param array $args The arguments passed the the helper
|
* @param \Handlebars\Arguments $args The arguments passed the the helper
|
||||||
* @param string $source The source
|
* @param string $source The source
|
||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function execute(Template $template, Context $context, $args, $source)
|
public function execute(Template $template, Context $context, $args, $source)
|
||||||
{
|
{
|
||||||
if (is_numeric($args)) {
|
$postionalArgs = $args->getPositionalArguments();
|
||||||
$tmp = $args;
|
$tmp = $context->get($postionalArgs[0]);
|
||||||
} else {
|
|
||||||
$tmp = $context->get($args);
|
|
||||||
}
|
|
||||||
|
|
||||||
$context->push($context->last());
|
$context->push($context->last());
|
||||||
if ($tmp) {
|
if ($tmp) {
|
||||||
|
@ -41,16 +41,17 @@ class UnlessHelper implements Helper
|
|||||||
/**
|
/**
|
||||||
* Execute the helper
|
* Execute the helper
|
||||||
*
|
*
|
||||||
* @param \Handlebars\Template $template The template instance
|
* @param \Handlebars\Template $template The template instance
|
||||||
* @param \Handlebars\Context $context The current context
|
* @param \Handlebars\Context $context The current context
|
||||||
* @param array $args The arguments passed the the helper
|
* @param \Handlebars\Arguments $args The arguments passed the the helper
|
||||||
* @param string $source The source
|
* @param string $source The source
|
||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function execute(Template $template, Context $context, $args, $source)
|
public function execute(Template $template, Context $context, $args, $source)
|
||||||
{
|
{
|
||||||
$tmp = $context->get($args);
|
$positionalArgs = $args->getPositionalArguments();
|
||||||
|
$tmp = $context->get($positionalArgs[0]);
|
||||||
|
|
||||||
$context->push($context->last());
|
$context->push($context->last());
|
||||||
|
|
||||||
|
@ -41,16 +41,17 @@ class WithHelper implements Helper
|
|||||||
/**
|
/**
|
||||||
* Execute the helper
|
* Execute the helper
|
||||||
*
|
*
|
||||||
* @param \Handlebars\Template $template The template instance
|
* @param \Handlebars\Template $template The template instance
|
||||||
* @param \Handlebars\Context $context The current context
|
* @param \Handlebars\Context $context The current context
|
||||||
* @param array $args The arguments passed the the helper
|
* @param \Handlebars\Arguments $args The arguments passed the the helper
|
||||||
* @param string $source The source
|
* @param string $source The source
|
||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function execute(Template $template, Context $context, $args, $source)
|
public function execute(Template $template, Context $context, $args, $source)
|
||||||
{
|
{
|
||||||
$context->with($args);
|
$positionalArgs = $args->getPositionalArguments();
|
||||||
|
$context->with($positionalArgs[0]);
|
||||||
$buffer = $template->render($context);
|
$buffer = $template->render($context);
|
||||||
$context->pop();
|
$context->pop();
|
||||||
|
|
||||||
|
@ -124,13 +124,14 @@ class Helpers
|
|||||||
throw new \InvalidArgumentException('Unknown helper: ' . $name);
|
throw new \InvalidArgumentException('Unknown helper: ' . $name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$parsedArgs = new Arguments($args);
|
||||||
if ($this->helpers[$name] instanceof Helper) {
|
if ($this->helpers[$name] instanceof Helper) {
|
||||||
return $this->helpers[$name]->execute(
|
return $this->helpers[$name]->execute(
|
||||||
$template, $context, $args, $source
|
$template, $context, $parsedArgs, $source
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return call_user_func($this->helpers[$name], $template, $context, $args, $source);
|
return call_user_func($this->helpers[$name], $template, $context, $parsedArgs, $source);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user