CakePHP
  • 文档
    • 手册
    • API
    • 视频
    • 报告安全问题
    • 隐私政策
    • 标识和商标
  • 商业解决方案
  • 周边产品
  • 公路旅行
  • 团队
  • 社区
    • 社区
    • 参与
    • 问题 (Github)
    • 面包店
    • 精选资源
    • 培训
    • 聚会
    • 我的 CakePHP
    • CakeFest
    • 时事通讯
    • 领英
    • YouTube
    • Facebook
    • Twitter
    • 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
    • Cache
    • Collection
    • Command
    • Console
    • Controller
    • Core
    • Database
    • Datasource
    • Error
    • Event
    • Form
    • Http
      • Client
      • Cookie
      • Exception
      • Middleware
      • Session
      • TestSuite
    • I18n
    • Log
    • Mailer
    • Network
    • ORM
    • Routing
    • TestSuite
    • Utility
    • Validation
    • View

类 ServerRequest

一个帮助封装请求信息和单个请求细节的类。提供常用方法来检查请求头和请求体。

命名空间: Cake\Http

属性摘要

  • $_detectorCache protected
    array<string, bool>

    is(something) 调用结果的实例缓存

  • $_detectors protected static
    arrayClosure|array>

    使用 is() 的内置检测器可以使用 addDetector() 修改。

  • $_environment protected
    array<string, mixed>

    环境数据的数组。

  • $attributes protected
    array<string, mixed>

    存储附加到请求的额外属性。

  • $base protected
    string

    基本 URL 路径。

  • $cookies protected
    array<string, mixed>

    Cookie 数据的数组。

  • $data protected
    object|array|null

    POST 数据的数组。将包含表单数据以及上传的文件。在 PUT/PATCH/DELETE 请求中,此属性将包含 form-urlencoded 数据。

  • $emulatedAttributes protected
    list<string>

    由 PSR7 属性方法模拟的属性列表。

  • $flash protected
    Cake\Http\FlashMessage

    与该请求相关的 FlashMessage 对象的实例

  • $params protected
    array

    从 URL 解析的参数数组。

  • $protocol protected
    string|null

    使用的 HTTP 协议版本。

  • $query protected
    array

    查询字符串参数的数组

  • $requestTarget protected
    string|null

    如果被覆盖,则为请求目标

  • $session protected
    Cake\Http\Session

    与该请求相关的 Session 对象的实例

  • $stream protected
    Psr\Http\Message\StreamInterface

    请求体流。包含 php://input,除非使用 input 构造函数选项。

  • $trustProxy public
    bool

    是否信任大多数负载均衡器设置的 HTTP_X 头。仅当您的应用程序在您控制的负载均衡器/代理后面运行时,才设置为 true。

  • $trustedProxies protected
    list<string>

    受信任代理列表

  • $uploadedFiles protected
    array

    Psr\Http\Message\UploadedFileInterface 对象的数组。

  • $uri protected
    Psr\Http\Message\UriInterface

    Uri 实例

  • $webroot protected
    string

    请求的 webroot 路径段。

方法摘要

  • __call() public

    缺少方法处理程序,处理包装旧样式的 isAjax() 类型方法

  • __construct() public

    创建一个新的请求对象。

  • _acceptHeaderDetector() protected

    检测是否存在特定接受头。

  • _environmentDetector() protected

    检测是否存在特定的环境变量。

  • _headerDetector() protected

    检测是否存在特定头。

  • _is() protected

    公共 is() 函数的工作器

  • _paramDetector() protected

    检测是否存在特定的请求参数。

  • _setConfig() protected

    将 config/settings 数据处理到属性中。

  • acceptLanguage() public

    获取客户端接受的语言,或检查是否接受特定语言。

  • accepts() public

    找出客户端接受的哪种内容类型,或检查它们是否接受特定类型的内容。

  • addDetector() public static

    在请求可以使用检测器列表中添加新的检测器。可以设置多种类型的检测器。

  • allowMethod() public

    仅允许某些 HTTP 请求方法,如果请求方法不匹配,将显示 405 错误,并将设置所需的 "Allow" 响应头。

  • clearDetectorCache() public

    清除实例检测器缓存,由 is() 函数使用

  • clientIp() public

    获取客户端使用的 IP,或声称使用的 IP。

  • contentType() public

    获取此请求中使用的内容类型。

  • domain() public

    获取域名,并包含 $tldLength 个 tld 段。

  • getAttribute() public

    从请求中读取属性,或获取默认值

  • getAttributes() public

    获取请求中的所有属性。

  • getBody() public

    获取消息的正文。

  • getCookie() public

    从请求的 cookie 数据中读取 cookie 数据。

  • getCookieCollection() public

    根据请求的 cookie 获取 cookie 集合

  • getCookieParams() public

    获取请求中的所有 cookie 数据。

  • getData() public

    提供对请求数据的安全访问器。允许使用 Hash::get() 兼容的路径。

  • getEnv() public

    从请求的环境数据中获取值。如果 $environment 属性中没有设置键,则回退使用 env()。

  • getFlash() public

    返回此请求的 FlashMessage 对象的实例

  • getHeader() public

    从请求中获取单个头。

  • getHeaderLine() public

    从请求中以字符串形式获取单个头。

  • getHeaders() public

    获取请求中的所有头。

  • getMethod() public

    获取此请求使用的 HTTP 方法。有几种方法可以指定方法。

  • getParam() public

    安全访问 $this->params 中的值。

  • getParsedBody() public

    获取解析的请求正文数据。

  • getPath() public

    获取当前请求的路径。

  • getProtocolVersion() public

    检索 HTTP 协议版本,作为字符串。

  • getQuery() public

    读取特定查询值或点路径。

  • getQueryParams() public

    根据 PSR-7 规范获取所有查询参数。要读取特定的查询值,请使用替代的 getQuery() 方法。

  • getRequestTarget() public

    检索请求的目标。

  • getServerParams() public

    获取所有服务器环境参数。

  • getSession() public

    返回此请求的 Session 对象的实例

  • getTrustedProxies() public

    获取受信任代理

  • getUploadedFile() public

    从点路径获取上传的文件。

  • getUploadedFiles() public

    从请求中获取上传文件数组。

  • getUri() public

    检索 URI 实例。

  • hasHeader() public

    检查请求中是否设置了标头。

  • host() public

    获取处理请求的宿主。

  • is() public

    检查请求是否为特定类型。

  • isAll() public

    检查请求是否匹配所有给定类型。

  • normalizeHeaderName() protected

    将标头名称规范化为 SERVER 版本。

  • port() public

    获取处理请求的端口。

  • processUrlOption() protected

    根据 url 选项设置环境变量以方便 UriInterface 实例生成。

  • referer() public

    返回引用此请求的来源。

  • scheme() public

    获取用于请求的当前 URL 方案。

  • setTrustedProxies() public

    注册受信任代理。

  • subdomains() public

    获取主机的子域。

  • validateUploadedFiles() protected

    递归验证上传的文件数据。

  • withAddedHeader() public

    获取修改后的请求,其中包含提供的标头。

  • withAttribute() public

    返回具有指定请求属性的实例。

  • withBody() public

    返回具有指定消息正文的实例。

  • withCookieCollection() public

    将请求中的 Cookie 替换为提供的 CookieCollection 中的 Cookie。

  • withCookieParams() public

    替换 Cookie 并获取新的请求实例。

  • withData() public

    使用新的请求数据元素更新请求。

  • withEnv() public

    使用新的环境数据元素更新请求。

  • withHeader() public

    获取修改后的请求,其中包含提供的标头。

  • withMethod() public

    更新请求方法并获取新的实例。

  • withParam() public

    使用新的路由参数更新请求。

  • withParsedBody() public

    更新解析后的正文并获取新的实例。

  • withProtocolVersion() public

    返回具有指定 HTTP 协议版本的实例。

  • withQueryParams() public

    更新查询字符串数据并获取新的实例。

  • withRequestTarget() public

    使用特定请求目标创建新实例。

  • withUploadedFiles() public

    更新请求,替换文件并创建新实例。

  • withUri() public

    返回具有指定 URI 的实例。

  • withoutAttribute() public

    返回没有指定请求属性的实例。

  • withoutData() public

    更新请求以删除数据元素。

  • withoutHeader() public

    获取修改后的请求,不包含提供的标头。

方法详情

__call() ¶ public

__call(string $name, array $params): bool

缺少方法处理程序,处理包装旧样式的 isAjax() 类型方法

参数
string $name

调用的方法

array $params

方法调用的参数数组

返回值
bool
抛出
BadMethodCallException
当调用无效方法时。

__construct() ¶ public

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

创建一个新的请求对象。

您可以将数据提供为数组或字符串。如果您使用字符串,您只能提供请求的 URL。使用数组可以提供以下键

  • post POST 数据或非查询字符串数据
  • query 查询字符串中的附加数据。
  • files 以规范化结构上传的文件,每个叶子都是 UploadedFileInterface 的实例。
  • cookies 此请求的 Cookie。
  • environment $_SERVER 和 $_ENV 数据。
  • url 请求的 URL,不包括基本路径。
  • uri PSR7 UriInterface 对象。如果为 null,则将从 url 或 environment 创建一个。
  • base 请求的基本 URL。
  • webroot 请求的 webroot 目录。
  • input 来自 php://input 的数据,这对模拟带有 put、patch 或 delete 数据的请求很有用。
  • session Session 对象的实例
参数
array<string, mixed> $config optional

用于创建请求的请求数据数组。

_acceptHeaderDetector() ¶ protected

_acceptHeaderDetector(array $detect): bool

检测是否存在特定接受头。

参数
array $detect

检测器选项数组。

返回值
bool

_environmentDetector() ¶ protected

_environmentDetector(array $detect): bool

检测是否存在特定的环境变量。

参数
array $detect

检测器选项数组。

返回值
bool

_headerDetector() ¶ protected

_headerDetector(array $detect): bool

检测是否存在特定头。

参数
array $detect

检测器选项数组。

返回值
bool

_is() ¶ protected

_is(string $type, array $args): bool

公共 is() 函数的工作器

参数
string $type

要检查的请求类型。

array $args

自定义检测器参数数组。

返回值
bool

_paramDetector() ¶ protected

_paramDetector(array $detect): bool

检测是否存在特定的请求参数。

参数
array $detect

检测器选项数组。

返回值
bool

_setConfig() ¶ protected

_setConfig(array<string, mixed> $config): void

将 config/settings 数据处理到属性中。

参数
array<string, mixed> $config

要使用的配置数据。

返回值
void

acceptLanguage() ¶ public

acceptLanguage(string|null $language = null): array|bool

获取客户端接受的语言,或检查是否接受特定语言。

获取接受的语言列表

$request->acceptLanguage();

检查是否接受特定语言

$request->acceptLanguage('es-es');

参数
string|null $language optional

要测试的语言。

返回值
array|bool

accepts() ¶ public

accepts(string|null $type = null): list<string>|bool

找出客户端接受的哪种内容类型,或检查它们是否接受特定类型的内容。

获取所有类型

$this->request->accepts();

检查单个类型

$this->request->accepts('application/json');

此方法将根据客户端指示的偏好值对返回的媒体类型进行排序。

参数
string|null $type optional

要检查的媒体类型。留空以获取客户端接受的所有类型。

返回值
list<string>|bool

addDetector() ¶ public static

addDetector(string $name, Closure|array $detector): void

在请求可以使用检测器列表中添加新的检测器。可以设置多种类型的检测器。

回调比较

回调检测器允许您提供一个闭包来处理检查。闭包将以请求对象作为其唯一参数。

addDetector('custom', function ($request) { //Return a boolean });

环境值比较

环境值比较,将从 env() 获取的值与已知值进行比较,环境值将与提供的值进行相等性检查。

addDetector('post', ['env' => 'REQUEST_METHOD', 'value' => 'POST']);

请求参数比较

允许对请求参数进行自定义检测。

addDetector('admin', ['param' => 'prefix', 'value' => 'admin']);

Accept 比较

允许检测器与 Accept 标头值进行比较。

addDetector('csv', ['accept' => 'text/csv']);

标头比较

允许比较一个或多个标头。

addDetector('fancy', ['header' => ['X-Fancy' => 1]);

param、env 和比较类型允许以下值比较选项

模式值比较

模式值比较允许您将从 env() 获取的值与正则表达式进行比较。

addDetector('iphone', ['env' => 'HTTP_USER_AGENT', 'pattern' => '/iPhone/i']);

基于选项的比较

基于选项的比较使用选项列表来创建正则表达式。对已定义的选项检测器进行后续添加调用将合并选项。

addDetector('mobile', ['env' => 'HTTP_USER_AGENT', 'options' => ['Fennec']]);

您还可以使用 options 键与多个值进行比较。当您要检查请求值是否在一个选项列表中时,这很有用。

addDetector('extension', ['param' => '_ext', 'options' => ['pdf', 'csv']]

参数
string $name

检测器的名称。

Closure|array $detector

闭包或检测器定义的选项数组。

返回值
void

allowMethod() ¶ public

allowMethod(list<string>|string $methods): true

仅允许某些 HTTP 请求方法,如果请求方法不匹配,将显示 405 错误,并将设置所需的 "Allow" 响应头。

示例

$this->request->allowMethod('post'); 或者 $this->request->allowMethod(['post', 'delete']);

如果请求为 GET,则会设置响应头 "Allow: POST, DELETE" 并返回 405 错误。

参数
list<string>|string $methods

允许的 HTTP 请求方法。

返回值
true
抛出
Cake\Http\Exception\MethodNotAllowedException

clearDetectorCache() ¶ public

clearDetectorCache(): void

清除实例检测器缓存,由 is() 函数使用

返回值
void

clientIp() ¶ public

clientIp(): string

获取客户端使用的 IP,或声称使用的 IP。

返回值
string

contentType() ¶ public

contentType(): string|null

获取此请求中使用的内容类型。

返回值
string|null

domain() ¶ public

domain(int $tldLength = 1): string

获取域名,并包含 $tldLength 个 tld 段。

参数
int $tldLength 可选

您的顶级域名 (TLD) 包含的段数。例如:example.com 包含 1 个 TLD。而 example.co.uk 包含 2 个。

返回值
string

getAttribute() ¶ public

getAttribute(string $name, mixed $default = null): mixed

从请求中读取属性,或获取默认值

检索单个派生的请求属性,如 getAttributes() 中所述。如果属性以前未设置,则返回提供的默认值。

此方法无需使用 hasAttribute() 方法,因为它允许指定一个默认值,如果属性未找到,则返回该值。

参数
string $name

属性名称。

mixed $default 可选

如果属性未设置,则为默认值。

返回值
mixed

getAttributes() ¶ public

getAttributes(): array<string, mixed>

获取请求中的所有属性。

这将包含 CakePHP 提供的 params、webroot、base 和 here 属性。

返回值
array<string, mixed>

getBody() ¶ public

getBody(): Psr\Http\Message\StreamInterface

获取消息的正文。

返回值
Psr\Http\Message\StreamInterface

getCookie() ¶ public

getCookie(string $key, array|string|null $default = null): array|string|null

从请求的 cookie 数据中读取 cookie 数据。

参数
string $key

您要读取的键或点分隔路径。

array|string|null $default 可选

如果未设置 Cookie,则为默认值。

返回值
array|string|null

getCookieCollection() ¶ public

getCookieCollection(): Cake\Http\Cookie\CookieCollection

根据请求的 cookie 获取 cookie 集合

CookieCollection 允许您使用 \Cake\Http\Cookie\Cookie 对象与请求 Cookie 进行交互,并且可以更轻松地将请求 Cookie 转换为响应 Cookie。

此方法每次调用时都会创建一个新的 CookieCollection。这是一种优化,可以减少分配的对象数量,直到需要更复杂的 CookieCollection。通常,您应该优先使用 getCookie() 和 getCookieParams() 而不是此方法。如果您的 Cookie 包含复杂的 JSON 编码数据,则使用 CookieCollection 是理想的选择。

返回值
Cake\Http\Cookie\CookieCollection

getCookieParams() ¶ public

getCookieParams(): array<string, mixed>

获取请求中的所有 cookie 数据。

检索客户端发送到服务器的 Cookie。

数据必须与 $_COOKIE 超级全局变量的结构兼容。

返回值
array<string, mixed>

getData() ¶ public

getData(string|null $name = null, mixed $default = null): mixed

提供对请求数据的安全访问器。允许使用 Hash::get() 兼容的路径。

读取值。

// get all data
$request->getData();

// Read a specific field.
$request->getData('Post.title');

// With a default value.
$request->getData('Post.not there', 'default value');

读取值时,对于不存在的键/值,您将获得 null。

鼓励开发人员使用 getParsedBody(),如果他们需要整个数据数组,因为它符合 PSR-7 标准,而此方法则不符合。使用 Hash::get() 您也可以获取单个参数。

PSR-7 替代方法

$value = Hash::get($request->getParsedBody(), 'Post.id');
参数
string|null $name 可选

要读取的值的点分隔名称。或 null 以读取所有数据。

mixed $default 可选

默认数据。

返回值
mixed

getEnv() ¶ public

getEnv(string $key, string|null $default = null): string|null

从请求的环境数据中获取值。如果 $environment 属性中没有设置键,则回退使用 env()。

参数
string $key

您要从中读取的键。

string|null $default 可选

尝试检索不存在的环境变量的值时的默认值。

返回值
string|null

getFlash() ¶ public

getFlash(): Cake\Http\FlashMessage

返回此请求的 FlashMessage 对象的实例

返回值
Cake\Http\FlashMessage

getHeader() ¶ public

getHeader(string $name): array<string, string>

从请求中获取单个头。

将头值作为数组返回。如果头不存在,则返回空数组。

参数
string $name

您要获取的头(不区分大小写)。

返回值
array<string, string>
链接
https://www.php-fig.org/psr/psr-7/ 此方法是 PSR-7 服务器请求接口的一部分。

getHeaderLine() ¶ public

getHeaderLine(string $name): string

从请求中以字符串形式获取单个头。

此方法将给定不区分大小写的头名称的所有头值作为用逗号连接在一起的字符串返回。

注意:并非所有头值都适合使用逗号连接来表示。对于此类头,请改用 getHeader() 并提供您自己的分隔符以进行连接。

如果头未出现在消息中,此方法必须返回空字符串。

参数
string $name

您要获取的头(不区分大小写)。

返回值
string
链接
https://www.php-fig.org/psr/psr-7/ 此方法是 PSR-7 服务器请求接口的一部分。

getHeaders() ¶ public

getHeaders(): array<list<string>>

获取请求中的所有头。

返回一个关联数组,其中头名称为键,值为头值的列表。

虽然头名称不区分大小写,但 getHeaders() 将规范化头。

返回值
array<list<string>>
链接
https://www.php-fig.org/psr/psr-7/ 此方法是 PSR-7 服务器请求接口的一部分。

getMethod() ¶ public

getMethod(): string

获取此请求使用的 HTTP 方法。有几种方法可以指定方法。

  • 如果您的客户端支持,您可以使用本机 HTTP 方法。
  • 您可以设置 X-Http-Method-Override 头。
  • 您可以提交一个名为 _method 的输入。

这三种方法中的任何一种都可以用来设置 CakePHP 在内部使用的 HTTP 方法,并将影响此方法的结果。

返回值
string
链接
https://www.php-fig.org/psr/psr-7/ 此方法是 PSR-7 服务器请求接口的一部分。

getParam() ¶ public

getParam(string $name, mixed $default = null): mixed

安全访问 $this->params 中的值。

参数
string $name

参数的名称或点分隔路径。

mixed $default 可选

如果 $name 未设置,则为默认值。默认值为 null。

返回值
mixed

getParsedBody() ¶ public

getParsedBody(): object|array|null

获取解析的请求正文数据。

如果请求 Content-Type 为 application/x-www-form-urlencoded 或 multipart/form-data,并且请求方法为 POST,则这将是发布数据。对于其他内容类型,它可能是反序列化的请求正文。

返回值
object|array|null

getPath() ¶ public

getPath(): string

获取当前请求的路径。

返回值
string

getProtocolVersion() ¶ public

getProtocolVersion(): string

检索 HTTP 协议版本,作为字符串。

该字符串必须仅包含 HTTP 版本号(例如,“1.1”、“1.0”)。

返回值
string

getQuery() ¶ public

getQuery(string|null $name = null, mixed $default = null): mixed

读取特定查询值或点路径。

鼓励开发人员使用 getQueryParams(),如果他们需要整个查询数组,因为它符合 PSR-7 标准,而此方法则不符合。使用 Hash::get() 您也可以获取单个参数。

PSR-7 替代方法

$value = Hash::get($request->getQueryParams(), 'Post.id');
参数
string|null $name 可选

查询参数的名称或点分隔路径,或 null 以读取所有内容。

mixed $default 可选

如果未设置命名参数,并且 $name 不为 null,则为默认值。

返回值
mixed
另请参阅
ServerRequest::getQueryParams()

getQueryParams() ¶ public

getQueryParams(): array

根据 PSR-7 规范获取所有查询参数。要读取特定的查询值,请使用替代的 getQuery() 方法。

检索反序列化的查询字符串参数(如果有)。

注意:查询参数可能与 URI 或服务器参数不同步。如果您需要确保仅获取原始值,则可能需要从getUri()->getQuery()或QUERY_STRING服务器参数解析查询字符串。

返回值
array
链接
https://www.php-fig.org/psr/psr-7/ 此方法是 PSR-7 服务器请求接口的一部分。

getRequestTarget() ¶ public

getRequestTarget(): string

检索请求的目标。

检索消息的请求目标,无论是按请求方式还是按withRequestTarget()设置的方式。默认情况下,这将返回应用程序相对路径(不含基本目录)以及 SERVER 环境中定义的查询字符串。

返回值
string

getServerParams() ¶ public

getServerParams(): array

获取所有服务器环境参数。

读取用于创建此请求的所有“环境”或“服务器”数据。

返回值
array
链接
https://www.php-fig.org/psr/psr-7/ 此方法是 PSR-7 服务器请求接口的一部分。

getSession() ¶ public

getSession(): Cake\Http\Session

返回此请求的 Session 对象的实例

返回值
Cake\Http\Session

getTrustedProxies() ¶ public

getTrustedProxies(): list<string>

获取受信任代理

返回值
list<string>

getUploadedFile() ¶ public

getUploadedFile(string $path): Psr\Http\Message\UploadedFileInterface|null

从点路径获取上传的文件。

参数
string $path

您要的文件的点分隔路径。

返回值
Psr\Http\Message\UploadedFileInterface|null

getUploadedFiles() ¶ public

getUploadedFiles(): array

从请求中获取上传文件数组。

此方法以规范化的树形式返回上传元数据,其中每个叶子都是 Psr\Http\Message\UploadedFileInterface 的实例。

这些值可能在实例化期间从 $_FILES 或消息主体准备,或者可能通过 withUploadedFiles() 注入。

返回值
array

getUri() ¶ public

getUri(): Psr\Http\Message\UriInterface

检索 URI 实例。

此方法必须返回 UriInterface 实例。

返回值
Psr\Http\Message\UriInterface

hasHeader() ¶ public

hasHeader(string $name): bool

检查请求中是否设置了标头。

参数
string $name

您要获取的头(不区分大小写)。

返回值
bool
链接
https://www.php-fig.org/psr/psr-7/ 此方法是 PSR-7 服务器请求接口的一部分。

host() ¶ public

host(): string|null

获取处理请求的宿主。

返回值
string|null

is() ¶ public

is(list<string>|string $type, mixed ...$args): bool

检查请求是否为特定类型。

使用内置检测规则以及使用 {@link \Cake\Http\ServerRequest::addDetector()} 定义的附加规则。任何检测器都可以称为 is($type) 或 is$Type()。

参数
list<string>|string $type

您要检查的请求类型。如果数组,此方法将返回 true,如果请求与任何类型匹配。

mixed ...$args

参数列表

返回值
bool
抛出
InvalidArgumentException
如果未为提供的类型设置检测器。

isAll() ¶ public

isAll(list<string> $types): bool

检查请求是否匹配所有给定类型。

允许您测试多种类型并联合结果。有关如何添加其他类型和内置类型的详细信息,请参阅 Request::is()。

参数
list<string> $types

要检查的类型。

返回值
bool
另请参阅
\Cake\Http\ServerRequest::is()

normalizeHeaderName() ¶ protected

normalizeHeaderName(string $name): string

将标头名称规范化为 SERVER 版本。

参数
string $name

标题名称。

返回值
string

port() ¶ public

port(): string|null

获取处理请求的端口。

返回值
string|null

processUrlOption() ¶ protected

processUrlOption(array<string, mixed> $config): array<string, mixed>

根据 url 选项设置环境变量以方便 UriInterface 实例生成。

query 选项也会根据 URL 的查询字符串进行更新。

参数
array<string, mixed> $config

配置数组。

返回值
array<string, mixed>

referer() ¶ public

referer(bool $local = true): string|null

返回引用此请求的来源。

参数
bool $local optional

尝试返回本地地址。本地地址不包含主机名。

返回值
string|null

scheme() ¶ public

scheme(): string

获取用于请求的当前 URL 方案。

例如“http”或“https”。

返回值
string

setTrustedProxies() ¶ public

setTrustedProxies(list<string> $proxies): void

注册受信任代理。

参数
list<string> $proxies

受信任代理的 ip 列表

返回值
void

subdomains() ¶ public

subdomains(int $tldLength = 1): list<string>

获取主机的子域。

参数
int $tldLength 可选

您的顶级域名 (TLD) 包含的段数。例如:example.com 包含 1 个 TLD。而 example.co.uk 包含 2 个。

返回值
list<string>

validateUploadedFiles() ¶ protected

validateUploadedFiles(array $uploadedFiles, string $path): void

递归验证上传的文件数据。

参数
array $uploadedFiles

要验证的新文件数组。

string $path

到目前为止的路径。

返回值
void
抛出
InvalidArgumentException
如果任何叶子元素不是有效文件。

withAddedHeader() ¶ public

withAddedHeader(string $name, string|string[] $value): static

获取修改后的请求,其中包含提供的标头。

将保留现有的标头值。提供的将追加到现有的值中。

参数
string $name

标题名称。

string|string[] $value

标题值

返回值
static
链接
https://www.php-fig.org/psr/psr-7/ 此方法是 PSR-7 服务器请求接口的一部分。

withAttribute() ¶ public

withAttribute(string $name, mixed $value): static

返回具有指定请求属性的实例。

此方法允许设置单个派生请求属性,如 getAttributes() 中所述。

此方法必须以保留消息不变性的方式实现,并且必须返回具有更新属性的实例。

参数
string $name

属性名称。

mixed $value

属性的值。

返回值
static

withBody() ¶ public

withBody(StreamInterface $body): static

返回具有指定消息正文的实例。

主体必须是 StreamInterface 对象。

此方法必须以保留消息不变性的方式实现,并且必须返回具有新主体流的新实例。

参数
StreamInterface $body

新的请求主体

返回值
static

withCookieCollection() ¶ public

withCookieCollection(Cake\Http\Cookie\CookieCollection $cookies): static

将请求中的 Cookie 替换为提供的 CookieCollection 中的 Cookie。

参数
Cake\Http\Cookie\CookieCollection $cookies

cookie 集合

返回值
static

withCookieParams() ¶ public

withCookieParams(array $cookies): static

替换 Cookie 并获取新的请求实例。

数据不需要来自 $_COOKIE 超级全局变量,但必须与 $_COOKIE 的结构兼容。通常,此数据将在实例化时注入。

此方法绝不能更新请求实例的相关 Cookie 标头,也不更新服务器参数中的相关值。

此方法必须以保留消息不变性的方式实现,并且必须返回具有更新 cookie 值的实例。

参数
array $cookies

要使用的新的 cookie 数据。

返回值
static

withData() ¶ public

withData(string $name, mixed $value): static

使用新的请求数据元素更新请求。

返回更新的请求对象。此方法返回一个新的请求对象,不会就地修改请求。

如果您需要替换所有请求数据,请使用withParsedBody()。

参数
string $name

要将 $value 插入的点分隔路径。

mixed $value

要插入请求数据的值。

返回值
static

withEnv() ¶ public

withEnv(string $key, string $value): static

使用新的环境数据元素更新请求。

返回更新的请求对象。此方法返回一个新的请求对象,不会就地修改请求。

参数
string $key

您要写入的键。

string $value

要设置的值

返回值
static

withHeader() ¶ public

withHeader(string $name, string|string[] $value): static

获取修改后的请求,其中包含提供的标头。

虽然标题名称不区分大小写,但此函数将保留标题的大小写,并从 getHeaders() 中返回。

此方法必须以保留消息不变性的方式实现,并且必须返回具有新的和/或更新的标题和值的实例。

参数
string $name

标题名称。

string|string[] $value

标题值

返回值
static
链接
https://www.php-fig.org/psr/psr-7/ 此方法是 PSR-7 服务器请求接口的一部分。

withMethod() ¶ public

withMethod(string $method): static

更新请求方法并获取新的实例。

虽然 HTTP 方法名称通常都是大写字符,但 HTTP 方法名称区分大小写,因此实现不应该修改给定的字符串。

此方法必须以保留消息不变性的方式实现,并且必须返回具有更改的请求方法的实例。

参数
string $method

要使用的 HTTP 方法。

返回值
static
链接
https://www.php-fig.org/psr/psr-7/ 此方法是 PSR-7 服务器请求接口的一部分。

withParam() ¶ public

withParam(string $name, mixed $value): static

使用新的路由参数更新请求。

返回更新的请求对象。此方法返回一个新的请求对象,不会就地修改请求。

参数
string $name

要将 $value 插入的点分隔路径。

mixed $value

要插入请求参数的值。

返回值
static

withParsedBody() ¶ public

withParsedBody(null|array|object $data): static

更新解析后的正文并获取新的实例。

这些 MAY 在实例化期间注入。

如果请求 Content-Type 为 application/x-www-form-urlencoded 或 multipart/form-data,并且请求方法为 POST,则仅使用此方法注入 $_POST 的内容。

数据 IS NOT REQUIRED 来自 $_POST,但 MUST 是对请求主体内容进行反序列化后的结果。反序列化/解析返回结构化数据,因此,此方法 ONLY 接受数组或对象,或者如果没有任何可解析的内容,则接受 null 值。

例如,如果内容协商确定请求数据是 JSON 负载,则可以使用此方法创建包含反序列化参数的请求实例。

此方法 MUST 以保持消息不变的方式实现,并且 MUST 返回一个具有更新的正文参数的实例。

参数
null|array|object $data

反序列化的正文数据。这通常是一个数组或对象。

返回值
static

withProtocolVersion() ¶ public

withProtocolVersion(string $version): static

返回具有指定 HTTP 协议版本的实例。

版本字符串 MUST 仅包含 HTTP 版本号(例如,“1.1”、“1.0”)。

参数
string $version

HTTP 协议版本

返回值
static

withQueryParams() ¶ public

withQueryParams(array $query): static

更新查询字符串数据并获取新的实例。

这些值 SHOULD 在传入请求的过程中保持不变。它们 MAY 在实例化期间注入,例如来自 PHP 的 $_GET 超级全局变量,或者 MAY 从其他值(如 URI)中推断出来。在从 URI 解析参数的情况下,数据 MUST 与 PHP 的 parse_str() 返回的数据兼容,以便处理重复的查询参数以及嵌套集的处理方式。

设置查询字符串参数 MUST NOT 更改请求存储的 URI,也不更改服务器参数中的值。

此方法 MUST 以保持消息不变的方式实现,并且 MUST 返回一个具有更新的查询字符串参数的实例。

参数
array $query

要使用的查询字符串数据

返回值
static
链接
https://www.php-fig.org/psr/psr-7/ 此方法是 PSR-7 服务器请求接口的一部分。

withRequestTarget() ¶ public

withRequestTarget(string $requestTarget): static

使用特定请求目标创建新实例。

可以使用此方法覆盖从请求的 Uri 推断出的请求目标。这还可以更改请求目标的形式为绝对形式、授权形式或星号形式

参数
string $requestTarget

请求目标。

返回值
static
链接
https://tools.ietf.org/html/rfc7230#section-2.7(有关请求消息中允许的各种请求目标形式)

withUploadedFiles() ¶ public

withUploadedFiles(array $uploadedFiles): static

更新请求,替换文件并创建新实例。

此方法 MUST 以保持消息不变的方式实现,并且 MUST 返回一个具有更新的正文参数的实例。

参数
array $uploadedFiles

上传的文件对象数组。

返回值
static
抛出
InvalidArgumentException
当 $files 包含无效对象时。

withUri() ¶ public

withUri(UriInterface $uri, bool $preserveHost = false): static

返回具有指定 URI 的实例。

警告替换 Uri 不会更新 base、webroot 和 url 属性。

参数
UriInterface $uri

新的请求 uri

bool $preserveHost 可选

是否保留主机。

返回值
static

withoutAttribute() ¶ public

withoutAttribute(string $name): static

返回没有指定请求属性的实例。

此方法允许删除在 getAttributes() 中描述的单个派生请求属性。

此方法 MUST 以保持消息不变的方式实现,并且 MUST 返回删除属性的实例。

参数
string $name

属性名称。

返回值
static
抛出
InvalidArgumentException

withoutData() ¶ public

withoutData(string $name): static

更新请求以删除数据元素。

返回更新的请求对象。此方法返回一个新的请求对象,不会就地修改请求。

参数
string $name

要删除的点分隔路径。

返回值
static

withoutHeader() ¶ public

withoutHeader(string $name): static

获取修改后的请求,不包含提供的标头。

标头解析 MUST 在不区分大小写的情况下完成。

此方法 MUST 以保持消息不变的方式实现,并且 MUST 返回删除命名标头的实例。

参数
string $name

要删除的标头名称。

返回值
static
链接
https://www.php-fig.org/psr/psr-7/ 此方法是 PSR-7 服务器请求接口的一部分。

属性详情

$_detectorCache ¶ protected

is(something) 调用结果的实例缓存

类型
array<string, bool>

$_detectors ¶ protected static

使用 is() 的内置检测器可以使用 addDetector() 修改。

有几种方法可以指定检测器,请参阅 \Cake\Http\ServerRequest::addDetector() 获取各种格式和定义检测器的方法。

类型
arrayClosure|array>

$_environment ¶ protected

环境数据的数组。

类型
array<string, mixed>

$attributes ¶ protected

存储附加到请求的额外属性。

类型
array<string, mixed>

$base ¶ protected

基本 URL 路径。

类型
string

$cookies ¶ protected

Cookie 数据的数组。

类型
array<string, mixed>

$data ¶ protected

POST 数据的数组。将包含表单数据以及上传的文件。在 PUT/PATCH/DELETE 请求中,此属性将包含 form-urlencoded 数据。

类型
object|array|null

$emulatedAttributes ¶ protected

由 PSR7 属性方法模拟的属性列表。

类型
list<string>

$flash ¶ protected

与该请求相关的 FlashMessage 对象的实例

类型
Cake\Http\FlashMessage

$params ¶ protected

从 URL 解析的参数数组。

类型
array

$protocol ¶ protected

使用的 HTTP 协议版本。

类型
string|null

$query ¶ protected

查询字符串参数的数组

类型
array

$requestTarget ¶ protected

如果被覆盖,则为请求目标

类型
string|null

$session ¶ protected

与该请求相关的 Session 对象的实例

类型
Cake\Http\Session

$stream ¶ protected

请求体流。包含 php://input,除非使用 input 构造函数选项。

类型
Psr\Http\Message\StreamInterface

$trustProxy ¶ public

是否信任大多数负载均衡器设置的 HTTP_X 头。仅当您的应用程序在您控制的负载均衡器/代理后面运行时,才设置为 true。

类型
bool

$trustedProxies ¶ protected

受信任代理列表

类型
list<string>

$uploadedFiles ¶ protected

Psr\Http\Message\UploadedFileInterface 对象的数组。

类型
array

$uri ¶ protected

Uri 实例

类型
Psr\Http\Message\UriInterface

$webroot ¶ protected

请求的 webroot 路径段。

类型
string
OpenHub
Pingping
Linode
  • 商业解决方案
  • 展示
  • 文档
  • 手册
  • API
  • 视频
  • 报告安全问题
  • 隐私政策
  • 标识和商标
  • 社区
  • 参与
  • 问题 (Github)
  • 面包店
  • 精选资源
  • 培训
  • 聚会
  • 我的 CakePHP
  • CakeFest
  • 时事通讯
  • 领英
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • 帮助和支持
  • 论坛
  • Stack Overflow
  • IRC
  • Slack
  • 付费支持

使用 CakePHP API 文档 生成