opsbears / piccolo-web-processor-controller
此包已被废弃,不再维护。未建议替换包。
1.0-alpha1
2016-07-22 07:14 UTC
Requires
- php: ^7.0
- opsbears/piccolo-web: ^1.0
- opsbears/piccolo-web-http: 1.0.0
Requires (Dev)
Suggests
Provides
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) {
//...
}
}
提示:为了使这生效,您显然必须将控制器添加到路由配置中。
提示:始终显式声明您的依赖关系,不要尝试通过获取依赖注入容器来获取服务。那样会将其变成服务定位器,这是一种反模式。