wpemerge
wpemerge copied to clipboard
"Unknown named parameter" on routings with parameters
Version
- WP Emerge: 0.16.0
- WordPress: 5.7.2
- PHP: 8.0.5
Expected behavior
Routings with parameters should work.
Actual behavior
Looks like they don't (I think because of with PHP 8). At least I don't see the error in my code if any. I'm getting : "Unknown named parameter $num1" in HttpKernel.php on line 177.
Steps to reproduce (in case of a bug)
-
Create a routing of the type :
App::route()->get()->url('/joro-test/{num1}/{num2}')->handle('TestController@check');
-
Controller looks like this :
class TestController {
public function check(RequestInterface $request, $view, $num1, $num2) {
return App::view("web/test/check")->with( "someVar", $num2 ?? "bang" );
}
}
Comments : I see similar complaints with Symfony routing, which is similar.
A-a-a-and the fix for this is to convert the WPEmerge\Helpers\Handler execute function as follows :
public function execute(...$arguments) {
//$arguments = func_get_args();
$instance = $this->make();
if ( $instance instanceof Closure ) {
return call_user_func_array( $instance, $arguments );
}
return call_user_func_array( [$instance, $this->get()['method']], $arguments );
}
Hmmm ... is this project still alive at all ?
Hey @lllopo ,
I've missed to update the issue - a fix for this is already in master
(https://github.com/htmlburger/wpemerge/commit/b2c8a1b47ba476fc023def17344146816fb18d67#diff-49fe90f07f48a9150957752e8f9ae0001283daacea41e65ac88e8bd739c709b2R177) but needs some more polishing before it gets released.
@atanas-dev could this be released please? what issues might it cause as it fixes the problem?
@codemonkeynorth this fix is included in the 0.17.0 release.