0

根据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),我该如何实例化它?

4

1 回答 1

1

在 Aura 路由器中使用类的唯一方法是在控制器中定义它或使用顶部的 use 语句加载类。

于 2020-01-27T16:10:56.693 回答