我正在从快速路由中间件创建路由器。
// routes.php
return [
['GET', '/1', ['ShowMe','demo']],
['GET', '/2', ShowMe::class],
];
如果我在 simpleDispatcher 的函数中手动包含它,一切正常 -两条路线都在工作:
// $r->addRoute('GET', '/ddd', ['ShowMe','demo']);
// $r->addRoute('GET', '/ddd', ShowMe::class);
但是,如果我想从 routes.php 加载路由,我将使用这样的代码:
foreach ($routes as $key => $route) {
$r->addRoute($route[0], $route[1], [$route[2][0], $route[2][1]]);
}
这项工作非常适合这样调用函数的路线:['GET', '/1', ['ShowMe','demo']],
所以我修改(因为我有 2 种路由类型并且希望这个语法支持它们):
$r->addRoute($route[0], $route[1], [implode(",", $route[2])]);
它现在在两种路线的类型中都不起作用:
Warning: implode(): Invalid arguments passed in ...\index.php on line 69
Fatal error: Uncaught RuntimeException: Invalid request handler: array
米脂