类服务器
运行应用程序,调用所有 PSR7 中间件和注册的应用程序。
命名空间: Cake\Http
属性摘要
-
$_eventClass 受保护
字符串
新事件对象的默认类名。
-
$_eventManager 受保护
Cake\Event\EventManagerInterface|null
Cake\Event\EventManager 的实例,此对象正在使用它来分发内部事件。
-
$app 受保护
Cake\Core\HttpApplicationInterface
-
$runner 受保护
Cake\Http\Runner
方法摘要
-
__construct() 公开
构造函数
-
bootstrap() 受保护
应用程序引导包装器。
-
dispatchEvent() 公开
用于创建和分发事件的包装器。
-
emit() 公开
使用 PHP SAPI 发射响应。
-
getApp() 公开
获取当前应用程序。
-
getEventManager() 公开
获取应用程序的事件管理器或全局事件管理器。
-
run() 公开
在应用程序及其中间件中运行请求/响应。
-
setEventManager() 公开
设置应用程序的事件管理器。
方法详情
__construct() ¶ 公开
__construct(Cake\Core\HttpApplicationInterface $app, Cake\Http\Runner|null $runner = null)
构造函数
参数
-
Cake\Core\HttpApplicationInterface
$app 要使用的应用程序。
-
Cake\Http\Runner|null
$runner 可选 应用程序运行器。
dispatchEvent() ¶ 公开
dispatchEvent(string $name, array $data = [], TSubject|null $subject = null): Cake\Event\EventInterface<TSubject>
用于创建和分发事件的包装器。
返回一个已分发的事件。
参数
-
字符串
$name 事件名称。
-
数组
$data 可选 您希望通过此事件传递的任何值,都可以由侦听器读取。
-
TSubject|null
$subject 可选 此事件适用的对象(默认情况下为 $this)。
返回值
Cake\Event\EventInterface<TSubject>
emit() ¶ 公开
emit(Psr\Http\Message\ResponseInterface $response, Cake\Http\ResponseEmitter|null $emitter = null): void
使用 PHP SAPI 发射响应。
在响应发出后,将触发 Server.terminate
事件。
Server.terminate
事件可用于在响应发送到客户端后执行可能很重的任务。只有 PHP FPM 服务器 API 能够在服务器的 PHP 进程执行某些任务时向客户端发送响应。对于其他环境,该事件将在响应刷新到客户端之前触发,将不会有任何好处。
参数
-
Psr\Http\Message\ResponseInterface
$response 要发出的响应。
-
Cake\Http\ResponseEmitter|null
$emitter 可选 要使用的发射器。当为 null 时,将使用 SAPI 流发射器。
返回值
void
getApp() ¶ 公开
getApp(): Cake\Core\HttpApplicationInterface
获取当前应用程序。
返回值
Cake\Core\HttpApplicationInterface
getEventManager() ¶ 公开
getEventManager(): Cake\Event\EventManagerInterface
获取应用程序的事件管理器或全局事件管理器。
您可以使用此实例向对象事件注册任何新的侦听器或回调,或创建您自己的事件并随意触发它们。
返回值
Cake\Event\EventManagerInterface
run() ¶ 公开
run(Psr\Http\Message\ServerRequestInterface|null $request = null, Cake\Http\MiddlewareQueue|null $middlewareQueue = null): Psr\Http\Message\ResponseInterface
在应用程序及其中间件中运行请求/响应。
这将调用以下方法
- App->bootstrap() - 在此处执行应用程序的任何引导逻辑。
- App->middleware() - 在此处附加任何应用程序中间件。
- 触发 'Server.buildMiddleware' 事件。您可以使用它从事件侦听器中修改。
- 运行中间件队列,包括应用程序。
参数
-
Psr\Http\Message\ServerRequestInterface|null
$request 可选 要使用的请求或 null。
-
Cake\Http\MiddlewareQueue|null
$middlewareQueue 可选 MiddlewareQueue 或 null。
返回值
Psr\Http\Message\ResponseInterface
抛出
RuntimeException
当应用程序没有做出响应时。
setEventManager() ¶ 公开
setEventManager(Cake\Event\EventManagerInterface $eventManager): $this
设置应用程序的事件管理器。
如果应用程序不支持事件,则会引发异常。
参数
-
Cake\Event\EventManagerInterface
$eventManager 要设置的事件管理器。
返回值
$this
抛出
InvalidArgumentException