-
Notifications
You must be signed in to change notification settings - Fork 713
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Qualify call_user_func_array
#1074
Comments
Sounds good. Just to be sure: you are saying it would be better to add a backslash before each time Smarty uses |
Yes, that is correct. Either that (add But again, it's not a "smarty problem" so if you do not wish to add |
This feels like a PHP bug, so feel free to close as off-topic/won't fix. 😃
Basically, the stack trace - as returned from
debug_backtrace()
- is messed up when callingcall_user_func_array()
from within a namespace.Simple PHP example:
The output is:
But, if you Fully-Qualify the function used, then you'll find the trace is "normal".
You can qualify the function by either prepending a
\
like\call_user_func_array(...
,or you can add a
use function call_user_func_array;
statement at the topEither method will fix the trace, and will have the added [alleged] benefit of being faster (as it doesn't have to check for a namespaced function):
How does this affect Smarty?
Smarty makes use of
call_user_func_array
. Ex: in Extension\CallbackWrapper.php.smarty/src/Extension/CallbackWrapper.php
Line 29 in a1b4c9c
This could be changed to either Fully Qualify the function (as explained above), or call_user_func_array could simply be dropped and use the splat operator like so:
But like I mentioned, the entire issue is somewhat beyond the scope of Smarty.
Just figured it may be of some interest.
The text was updated successfully, but these errors were encountered: