Comments (7)
Hey,
I would like to see that too.
have a look at 172th and 175th lines of Template.php file, that's where {{foo}}
gets replaced by $context->get('foo')
. probably changing _variable
should be far easier but I think it's better to keep what it does as simple as possible and have another method that checks if there's any helper registered with $current[Tokenizer::NAME]
and if there wasn't, it calls _variable
.
from handlebars.php.
Thanks for the speedy response!
I'll have a look into that, I came up with a weaker method of checking the template source before compile, to correct any matching helpers,
if {{fullname => {{#fullname etc
Out of curiosity, if you could help, on registering helpers, I've only successfully added them in the actual Helper class.
Is there a more specific example of how to add them outside of the class with a Handlebars instance ?
from handlebars.php.
there's no need to do that, you can have your own helper class and register helpers like $handlebars->addHelper("foo", array("Namespace\\MyHelpers", "foo_method"))
or just use closures like
$handlebars->addHelper('foo', function($template, $context, $args, $source) {
...
});
you can use anything that makes is_callable
happy.
anyways, I keep this open until we fix calling helpers with {{helperName args}}
syntax.
from handlebars.php.
@everplays Amazing. Again thank you.
from handlebars.php.
Hello, I'm running into similar issue.
Would love to see this as well.
I tried to modify the src to have it working, and my finding was that, for one, when doing with
{{helperName args}}
Tokenizer doesn't recognize the arguments, so I added T_ESCAPED, T_UNESCAPED, T_UNESCAPED2 to argument interpretation and expanded the Template.php in cases for types above to; if it has argument, run the _section instead of _variables.
It did work, but then it mis-interrupted the variable with path i.e ../variable
using php-52 version btw.
thanks for the cool port 👍
from handlebars.php.
@yuta1228 I don't understand, why it would interrupt ../variable
? $context->get
handles 'em which won't be touched at all.
from handlebars.php.
Sorry, let me try to make it clear.
So I was testing Tolkenizer::scan
to let in
Tolkenizer::T_ESCAPED
Tolkenizer::T_UNESCAPED
Tolkenizer::T_UNESCAPED2
to checking if these type has arguments.
It would have ../variable
go in for scan to see if it has arguments, and somehow it was interpreted as helper when it got to Template::render
.
I found out that when checking those types for arguments, it should not default to have args variable default to empty string as it does in case for Tolkenizer::T_SECTION
and others.
Once that was taken care of it seems to have no problem.
from handlebars.php.
Related Issues (20)
- Get current helper content as string or tree HOT 4
- How to use @last in #each HOT 1
- A way to use arbitrary text as arguments in custom helper HOT 3
- Redundant newlines HOT 10
- Variables are searched only in current context not in context stack HOT 1
- How to test if helper was used as block or non block? HOT 2
- Helper that have another helper inside that modify its behavior HOT 5
- Helper try to execute another helper even that it's inside quotes HOT 1
- Registering MANY Partials at once HOT 1
- When-helper nested in each loop: clears variables? HOT 3
- Mustache-style Context Lookups HOT 1
- Could you make a release tag? HOT 2
- How can I use this JS template in a page rendered by handlebars.php HOT 2
- what does it means "\.?" in the end of variable $variable_name
- includeZero doesn't seem to work. HOT 1
- How to use #invoke recursively inside #define helper? HOT 2
- Using Dynamic Partial Names HOT 6
- Can't seem to get parent @key in nested #each to work: {{@../key}} HOT 1
- PHP 7.3 error HOT 1
- LogHelper
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from handlebars.php.