wpemerge icon indicating copy to clipboard operation
wpemerge copied to clipboard

"Unknown named parameter" on routings with parameters

Open lllopo opened this issue 3 years ago • 5 comments

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)

  1. Create a routing of the type : App::route()->get()->url('/joro-test/{num1}/{num2}')->handle('TestController@check');

  2. 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.

lllopo avatar May 13 '21 18:05 lllopo

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 );
	}

lllopo avatar May 14 '21 11:05 lllopo

Hmmm ... is this project still alive at all ?

lllopo avatar May 25 '21 08:05 lllopo

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 avatar May 25 '21 09:05 atanas-dev

@atanas-dev could this be released please? what issues might it cause as it fixes the problem?

codemonkeynorth avatar Dec 20 '23 20:12 codemonkeynorth

@codemonkeynorth this fix is included in the 0.17.0 release.

atanas-dev avatar Dec 20 '23 21:12 atanas-dev