CakePHP
  • 文档
    • 书籍
    • API
    • 视频
    • 报告安全问题
    • 隐私政策
    • 标识和商标
  • 商业解决方案
  • 周边商品
  • 公路旅行
  • 团队
  • 社区
    • 社区
    • 参与
    • 问题 (Github)
    • 烘焙坊
    • 精选资源
    • 培训
    • 聚会
    • 我的 CakePHP
    • CakeFest
    • 新闻通讯
    • 领英
    • YouTube
    • 脸书
    • 推特
    • Mastodon
    • 帮助和支持
    • 论坛
    • Stack Overflow
    • IRC
    • Slack
    • 付费支持
CakePHP

C CakePHP 5.1 Chiffon API

  • 项目
    • CakePHP
      • CakePHP
      • Chronos
      • Elastic Search
      • 队列
  • 版本
    • 5.1
      • 5.1
      • 5.0
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

命名空间

  • 全局
  • Cake
    • 缓存
    • 集合
    • 命令
    • 控制台
    • 控制器
    • 核心
    • 数据库
    • 数据源
    • 错误
    • 事件
    • 表单
    • Http
      • 客户端
      • Cookie
      • 异常
      • 中间件
      • 会话
      • 测试套件
    • 国际化
    • 日志
    • 邮件
    • 网络
    • ORM
    • 路由
    • 测试套件
    • 实用程序
    • 验证
    • 视图

类 BodyParserMiddleware

解析编码的请求体数据。

使 JSON 和 XML 请求有效负载能够解析为请求的正文。您还可以使用 addParser() 方法添加自己的请求正文解析器。

命名空间: Cake\Http\Middleware

属性摘要

  • $methods protected
    list<string>

    要解析数据的 HTTP 方法。

  • $parsers protected
    arrayClosure>

    已注册的解析器

方法摘要

  • __construct() public

    构造函数

  • addParser() public

    添加解析器。

  • decodeJson() protected

    将 JSON 解码为数组。

  • decodeXml() protected

    将 XML 解码为数组。

  • getMethods() public

    获取要解析请求正文的 HTTP 方法。

  • getParsers() public

    获取当前的解析器

  • process() public

    应用中间件。

  • setMethods() public

    设置要解析请求正文的 HTTP 方法。

方法详细信息

__construct() ¶ public

__construct(array<string, mixed> $options = [])

构造函数

选项

  • json 设置为 false 以禁用 JSON 正文解析。
  • xml 设置为 true 以启用 XML 解析。默认值为 false,因为 XML 处理比 JSON 更需要小心。
  • methods 要解析的方法的 HTTP 方法。默认为 PUT、POST、PATCH DELETE。
参数
array<string, mixed> $options optional

要使用的选项。见上文。

addParser() ¶ public

addParser(list<string> $types, Closure $parser): $this

添加解析器。

将一组 content-type 头值映射到由 $parser 解析。

示例

一个简单的 CSV 请求正文解析器可以这样构建

$parser->addParser(['text/csv'], function ($body) {
  return str_getcsv($body);
});
参数
list<string> $types

要匹配的一组 content-type 头值。例如 application/json

Closure $parser

解析器函数。必须返回一个要插入请求中的数据数组。

返回值
$this

decodeJson() ¶ protected

decodeJson(string $body): array|null

将 JSON 解码为数组。

参数
string $body

要解码的请求正文

返回值
array|null

decodeXml() ¶ protected

decodeXml(string $body): array

将 XML 解码为数组。

参数
string $body

要解码的请求正文

返回值
array

getMethods() ¶ public

getMethods(): list<string>

获取要解析请求正文的 HTTP 方法。

返回值
list<string>

getParsers() ¶ public

getParsers(): arrayClosure>

获取当前的解析器

返回值
arrayClosure>

process() ¶ public

process(ServerRequestInterface $request, RequestHandlerInterface $handler): Psr\Http\Message\ResponseInterface

应用中间件。

如果 content-type 已知,将修改请求并添加解析后的正文。

参数
ServerRequestInterface $request

请求。

RequestHandlerInterface $handler

请求处理程序。

返回值
Psr\Http\Message\ResponseInterface

setMethods() ¶ public

setMethods(list<string> $methods): $this

设置要解析请求正文的 HTTP 方法。

参数
list<string> $methods

要解析数据的方法。

返回值
$this

属性详细信息

$methods ¶ protected

要解析数据的 HTTP 方法。

类型
list<string>

$parsers ¶ protected

已注册的解析器

类型
arrayClosure>
OpenHub
Pingping
Linode
  • 商业解决方案
  • 展示
  • 文档
  • 书籍
  • API
  • 视频
  • 报告安全问题
  • 隐私政策
  • 标识和商标
  • 社区
  • 参与
  • 问题 (Github)
  • 烘焙坊
  • 精选资源
  • 培训
  • 聚会
  • 我的 CakePHP
  • CakeFest
  • 新闻通讯
  • 领英
  • YouTube
  • 脸书
  • 推特
  • Mastodon
  • 帮助和支持
  • 论坛
  • Stack Overflow
  • IRC
  • Slack
  • 付费支持

使用 CakePHP API 文档 生成