CakePHP
  • 文档
    • 书籍
    • API
    • 视频
    • 报告安全问题
    • 隐私政策
    • 徽标和商标
  • 商业解决方案
  • 周边商品
  • 公路旅行
  • 团队
  • 社区
    • 社区
    • 参与
    • 问题(Github)
    • 烘焙坊
    • 精选资源
    • 培训
    • 聚会
    • 我的 CakePHP
    • CakeFest
    • 时事通讯
    • 领英
    • 优酷
    • 脸书
    • 推特
    • Mastodon
    • 帮助和支持
    • 论坛
    • 堆栈溢出
    • 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
    • 国际化
    • 日志
    • 邮件
    • 网络
    • ORM
    • 路由
      • 异常
      • 中间件
      • 路由
    • 测试套件
    • 实用工具
    • 验证
    • 视图

类 DashedRoute

此路由类将透明地对控制器、操作和插件路由参数进行词形转换,因此请求 /my-plugin/my-controller/my-action 将解析为 ['plugin' => 'MyPlugin', 'controller' => 'MyController', 'action' => 'myAction']

命名空间: Cake\Routing\Route

常量

  • 字符串
    PLACEHOLDER_REGEX ¶
    '#\\{([a-z][a-z0-9-_]*)\\}#i'

    匹配路由模板中带括号的占位符的正则表达式。

  • 列表<字符串>
    VALID_METHODS ¶
    ['GET', 'PUT', 'POST', 'PATCH', 'DELETE', 'OPTIONS', 'HEAD']

    有效的 HTTP 方法。

属性概述

  • $_compiledRoute protected
    字符串|null

    编译后的路由正则表达式

  • $_extensions protected
    列表<字符串>

    与该路由关联的扩展列表。

  • $_greedy protected
    布尔

    此路由是否为贪婪路由?贪婪路由在其模板中包含 /*

  • $_inflectedDefaults protected
    数组|null

    用于跟踪默认值是否已进行词形转换的标志。

  • $_name protected
    字符串|null

    路由的名称。使用 Route::getName() 获取。

  • $defaults public
    数组

    路由的默认参数

  • $keys public
    数组

    路由中命名段的数组。/{controller}/{action}/{id} 包含 3 个关键元素

  • $middleware protected
    数组

    应应用的中间件列表。

  • $options public
    数组<字符串, 混合>

    路由的附加参数数组。

  • $template public
    字符串

    路由的模板字符串。

方法概述

  • __construct() public

    路由的构造函数

  • __set_state() public static

    设置状态魔术方法以支持 var_export

  • _camelizePlugin() protected

    将先前带破折号的插件路由转换为驼峰式,同时考虑插件供应商

  • _dasherize() protected

    将 URL 数组中的键转换为带破折号的辅助方法。

  • _matchMethod() protected

    检查 URL 的 HTTP 方法是否匹配。

  • _parseArgs() protected

    将传递的参数解析为已传递参数列表。

  • _parseExtension() protected

    如果 $url 包含已注册的扩展,则从 $url 中删除扩展。如果没有找到已注册的扩展,则不返回任何扩展,并返回未修改的 URL。

  • _persistParams() protected

    将持久参数应用于 URL 数组。持久参数是在路由创建期间使用的特殊键,用于强制路由参数在从 URL 数组中省略时保持持久性。

  • _writeRoute() protected

    构建路由正则表达式。

  • _writeUrl() protected

    将匹配的路由数组转换为 URL 字符串。

  • compile() public

    编译路由的正则表达式。

  • compiled() public

    检查路由是否已编译为正则表达式。

  • getExtensions() public

    获取该路由支持的扩展。

  • getMiddleware() public

    获取应应用于此路由的中间件名称。

  • getName() public

    获取路由的标准化 plugin.controller:action 名称。

  • hostMatches() public

    检查主机是否匹配路由要求

  • match() public

    在将参数传递给父类之前,将控制器、操作和插件参数转换为带破折号的格式。

  • normalizeAndValidateMethods() protected

    将方法名称规范化为大写,并验证它们是否为有效的 HTTP 方法。

  • parse() public

    将字符串 URL 解析为数组。如果匹配,它将把控制器和插件键转换为其驼峰式形式,并将操作键转换为驼峰式形式。

  • parseRequest() public

    检查给定 URL 是否可以由此路由解析。

  • setExtensions() public

    设置该路由支持的扩展。

  • setHost() public

    设置主机要求

  • setMethods() public

    设置此路由接受的 HTTP 方法。

  • setMiddleware() public

    设置应应用于此路由的中间件名称。

  • setPass() public

    设置将被转换为已传递参数的参数名称

  • setPatterns() public

    为路由参数设置正则表达式模式

  • setPersist() public

    设置将自动持久化的参数名称

  • staticPath() public

    获取此路由的静态路径部分。

方法详情

__construct() ¶ public

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

路由的构造函数

选项

  • _ext - 定义此路由使用的扩展。
  • _middleware - 定义此路由的中间件名称。
  • pass - 将列出的参数复制到 params['pass'] 中。
  • _method - 定义路由适用的 HTTP 方法。它可以是字符串或有效 HTTP 方法名称的数组。
  • _host - 如果要让此路由仅匹配特定主机名,请定义主机名模式。可以使用 .* 和来创建通配符子域/主机,例如 *.example.com 匹配 example.com 上的所有子域。
  • '_port` - 如果要让此路由仅匹配特定端口号,请定义端口。
  • '_urldecode' - 设置为 false 以在路由解析之前禁用 URL 解码。
参数
字符串 $template

包含参数占位符的模板字符串

数组 $defaults optional

路由的默认值。

数组<字符串, 混合> $options optional

路由的附加选项数组

抛出
InvalidArgumentException
当 `$options['_method']` 不在 `VALID_METHODS` 列表中时。

__set_state() ¶ public static

__set_state(array<string, mixed> $fields): static

设置状态魔术方法以支持 var_export

此方法有助于想要实现路由缓存的应用程序。

参数
array<string, mixed> $fields

对象属性的键值对

返回值
static

_camelizePlugin() ¶ protected

_camelizePlugin(string $plugin): string

将先前带破折号的插件路由转换为驼峰式,同时考虑插件供应商

参数
string $plugin

插件名称

返回值
字符串

_dasherize() ¶ protected

_dasherize(array $url): array

将 URL 数组中的键转换为带破折号的辅助方法。

参数
array $url

一个 URL 键数组。

返回值
数组

_matchMethod() ¶ protected

_matchMethod(array $url): bool

检查 URL 的 HTTP 方法是否匹配。

参数
array $url

用于生成 URL 的数组。

返回值
布尔

_parseArgs() ¶ protected

_parseArgs(string $args, array $context): list<string>

将传递的参数解析为已传递参数列表。

如果给定的命名参数 $param 的 $val 匹配给定的 $rule(取决于 $context),则返回 true。当前实现的规则类型包括 controller、action 和 match,它们可以相互组合。

参数
string $args

包含传递参数的字符串。例如:/1/foo

array $context

当前路由上下文,应该包含 controller/action 键。

返回值
列表<字符串>

_parseExtension() ¶ protected

_parseExtension(string $url): array

如果 $url 包含已注册的扩展,则从 $url 中删除扩展。如果没有找到已注册的扩展,则不返回任何扩展,并返回未修改的 URL。

参数
string $url

要解析的 URL。

返回值
数组

_persistParams() ¶ protected

_persistParams(array $url, array $params): array

将持久参数应用于 URL 数组。持久参数是在路由创建期间使用的特殊键,用于强制路由参数在从 URL 数组中省略时保持持久性。

参数
array $url

要应用持久参数的数组。

array $params

要替换持久参数的持久值数组。

返回值
数组

_writeRoute() ¶ protected

_writeRoute(): void

构建路由正则表达式。

使用 template、defaults 和 options 属性来编译一个正则表达式,该表达式可用于解析请求字符串。

返回值
void

_writeUrl() ¶ protected

_writeUrl(array $params, array $pass = [], array $query = []): string

将匹配的路由数组转换为 URL 字符串。

使用用于创建路由的模板来组合字符串 URL。

参数
array $params

要转换为字符串 URL 的参数

array $pass optional

附加的传递参数

array $query optional

一个参数数组

返回值
字符串

compile() ¶ public

compile(): string

编译路由的正则表达式。

修改 defaults 属性,以便设置所有必要的键,并使用命名路由元素填充 $this->names。

返回值
字符串

compiled() ¶ public

compiled(): bool

检查路由是否已编译为正则表达式。

返回值
布尔

getExtensions() ¶ public

getExtensions(): list<string>

获取该路由支持的扩展。

返回值
列表<字符串>

getMiddleware() ¶ public

getMiddleware(): array

获取应应用于此路由的中间件名称。

返回值
数组

getName() ¶ public

getName(): string

获取路由的标准化 plugin.controller:action 名称。

返回值
字符串

hostMatches() ¶ public

hostMatches(string $host): bool

检查主机是否匹配路由要求

参数
string $host

请求的域名

返回值
布尔

match() ¶ public

match(array $url, array $context = []): string|null

在将参数传递给父类之前,将控制器、操作和插件参数转换为带破折号的格式。

如果 URL 匹配路由参数和设置,则返回生成的字符串 URL。如果 URL 不匹配路由参数,则返回 false。此方法处理反向路由或将 URL 数组转换为字符串 URL。

参数
array $url

要转换为字符串的参数数组。

array $context optional

当前请求上下文数组。包含有关当前主机、方案、端口和基本目录的信息。

返回值
字符串|null

normalizeAndValidateMethods() ¶ protected

normalizeAndValidateMethods(list<string>|string $methods): list<string>|string

将方法名称规范化为大写,并验证它们是否为有效的 HTTP 方法。

参数
list<string>|string $methods

方法。

返回值
list<string>|string
抛出
InvalidArgumentException
当方法不在 `VALID_METHODS` 列表中时。

parse() ¶ public

parse(string $url, string $method = ''): array|null

将字符串 URL 解析为数组。如果匹配,它将把控制器和插件键转换为其驼峰式形式,并将操作键转换为驼峰式形式。

如果路由可以解析,将返回一个参数数组;否则将返回 null。如果字符串 URL 匹配路由的正则表达式,则对其进行解析。

参数
string $url

要解析的 URL

string $method optional

HTTP 方法。

返回值
数组|null

parseRequest() ¶ public

parseRequest(Psr\Http\Message\ServerRequestInterface $request): array|null

检查给定 URL 是否可以由此路由解析。

如果路由可以解析,将返回一个参数数组;否则将返回 null。

参数
Psr\Http\Message\ServerRequestInterface $request

要尝试解析的 URL。

返回值
数组|null

setExtensions() ¶ public

setExtensions(list<string> $extensions): $this

设置该路由支持的扩展。

参数
list<string> $extensions

要设置的扩展名。

返回值
$this

setHost() ¶ public

setHost(string $host): $this

设置主机要求

参数
string $host

此路由绑定的域名

返回值
$this

setMethods() ¶ public

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

设置此路由接受的 HTTP 方法。

参数
list<string> $methods

要接受的 HTTP 方法。

返回值
$this
抛出
InvalidArgumentException
当方法不在 `VALID_METHODS` 列表中时。

setMiddleware() ¶ public

setMiddleware(array $middleware): $this

设置应应用于此路由的中间件名称。

参数
array $middleware

要应用于此路由的中介软件名称列表。在匹配路由之前不会检查中介软件名称。

返回值
$this

setPass() ¶ public

setPass(list<string> $names): $this

设置将被转换为已传递参数的参数名称

参数
list<string> $names

要传递的参数的名称。

返回值
$this

setPatterns() ¶ public

setPatterns(array<string, string> $patterns): $this

为路由参数设置正则表达式模式

如果您的任何模式包含多字节值,则将启用 `multibytePattern` 模式。

参数
array<string, string> $patterns

要应用于路由元素的模式

返回值
$this

setPersist() ¶ public

setPersist(array $names): $this

设置将自动持久化的参数名称

持久参数允许您定义在生成新 URL 时应自动包含哪些路由参数。您可以通过在 URL 中重新定义持久参数来覆盖它们,或者通过将持久参数设置为 false 来删除它们。

// remove a persistent 'date' parameter
Router::url(['date' => false', ...]);
参数
array $names

要传递的参数的名称。

返回值
$this

staticPath() ¶ public

staticPath(): string

获取此路由的静态路径部分。

返回值
字符串

属性详细信息

$_compiledRoute ¶ protected

编译后的路由正则表达式

类型
字符串|null

$_extensions ¶ protected

与该路由关联的扩展列表。

类型
列表<字符串>

$_greedy ¶ protected

此路由是否为贪婪路由?贪婪路由在其模板中包含 /*

类型
布尔

$_inflectedDefaults ¶ protected

用于跟踪默认值是否已进行词形转换的标志。

默认值需要被词形化,以便它们与 match() 将创建的词形化匹配。

类型
数组|null

$_name ¶ protected

路由的名称。使用 Route::getName() 获取。

类型
字符串|null

$defaults ¶ public

路由的默认参数

类型
数组

$keys ¶ public

路由中命名段的数组。/{controller}/{action}/{id} 包含 3 个关键元素

类型
数组

$middleware ¶ protected

应应用的中间件列表。

类型
数组

$options ¶ public

路由的附加参数数组。

类型
数组<字符串, 混合>

$template ¶ public

路由的模板字符串。

类型
字符串
OpenHub
Pingping
Linode
  • 商业解决方案
  • 展示
  • 文档
  • 书籍
  • API
  • 视频
  • 报告安全问题
  • 隐私政策
  • 徽标和商标
  • 社区
  • 参与
  • 问题(Github)
  • 烘焙坊
  • 精选资源
  • 培训
  • 聚会
  • 我的 CakePHP
  • CakeFest
  • 时事通讯
  • 领英
  • 优酷
  • 脸书
  • 推特
  • Mastodon
  • 帮助和支持
  • 论坛
  • 堆栈溢出
  • IRC
  • Slack
  • 付费支持

使用 CakePHP API 文档 生成