我正在使用 Slim 框架创建 API。目前我使用单个文件来创建路由并将闭包传递给它:

$app->get('/', function($req, $resp){
//Code...
})

但我意识到我的文件增长迅速。我想要做的是改用 Controller ,所以我将有一个 Controller 类,并将实例/静态方法传递给路由,如下所示
class HomeController
{
   public static function index($req, $resp){}
}

然后将函数传递给路由
$app->get('/', HomeController::index);

我试过这个,但它不起作用,我想知道是否有一种方法可以使用它来管理我的文件。

最佳答案

将 Controller 变成仿函数:

class HomeController
{
    public function __invoke($req, $resp) {}
}

然后像这样路由:
$app->get('/', HomeController::class);

供引用,请参阅
  • http://www.slimframework.com/docs/objects/router.html#how-to-create-routes
  • http://www.slimframework.com/docs/objects/router.html#route-callbacks
  • 10-04 22:39