opsbears/piccolo-web-processor-controller

此包已被废弃,不再维护。未建议替换包。

1.0-alpha1 2016-07-22 07:14 UTC

This package is not auto-updated.

Last update: 2020-10-16 21:32:36 UTC


README

控制器处理器是模块,通过Piccolo\Web\Processor\RequestProcessor实现Piccolo\Web\Processor\Controller\ControllerRequestProcessor类。其主要目的是调用在Piccolo\Web\Routing\Router中定义的路由类,然后调用路由过程返回的类/方法。方法的响应将按以下方式处理。

编写控制器

要编写控制器,您只需创建一个具有任何函数的类,并返回以下之一

  • PSR-7响应:如果返回PSR-7响应,则忽略HTTPRequestResponseContainer的内容,并将响应返回给客户端而不进行修改。
  • 字符串:立即将字符串响应返回到输出。可以通过请求将HTTPRequestResponseContainer注入到控制器中来设置额外的头信息。
  • 数组:如果返回数组,则调用视图处理器(Piccolo\Web\Processor\Controller\ControllerViewProcessor的实现)来将数据处理为字符串。然后将字符串返回给客户端,如上所述。

要获取方法中的任何参数,您只需将它们添加为类型提示,然后依赖注入容器将处理其余部分。这将自动完成。

class MyController {
    class myAction(ServerRequestInterface $request) {
        //...
    }
}

提示:为了使这生效,您显然必须将控制器添加到路由配置中。

提示:始终显式声明您的依赖关系,不要尝试通过获取依赖注入容器来获取服务。那样会将其变成服务定位器,这是一种反模式。