根据Aura Router的文档,为了定义一个新的路径(例如对于 GET 方法),我们可以使用这个代码片段:
$map->get('blog.read', '/blog/{classname}/{method}/{param}', function ($request) {
$className = $request->getAttribute('classname');
$methodName = $request->getAttribute('method');
$param = $request->getAttribute('param');
$response = new Zend\Diactoros\Response();
$response->getBody()->write("You asked for blog entry {$id}.");
return $response;
});
如果 $className 定义在同一个文件中,我们可以这样使用:
...
$param = $request->getAttribute('param');
$classInstance = new $classname();
$output = $classInstance->$methodName($param);
$response = new Zend\Diactoros\Response();
...
但是如果该类是在另一个文件中定义的(例如,不同的命名空间,如 Vendor\Controller\ClassName),我该如何实例化它?