ZF2 - 如果路由器匹配多个路由,将调度什么?

2023-12-19

那么 - 如果我有一个可能与许多路由匹配的 url,该怎么办……哪条路由会获胜?将调度哪个操作?

是不是很简单——先定义——先调度?

以下是路线示例:

'route-catchall' => array(
    'type' => 'regex',
    'options' => array(
        'regex' => '/api/v1/.*',
        'defaults' => array(
            'controller' => 'IndexController',
            'action'     => 'apiCatchAll',
        ),
    ),
),
'route-test1' => array(
    'type' => 'literal',
    'options' => array(
        'route' => '/api/v1/route1',
        'defaults' => array(
            'controller' => 'IndexController',
            'action'     => 'apiRoute1',
        ),
    ),
),

这个网址可以吗example.com/api/v1/route1被路由到apiRoute1 or apiCatchAll?


由于附加到路由堆栈的路由存储在优先列表 https://github.com/zendframework/zf2/blob/release-2.1.3/library/Zend/Mvc/Router/SimpleRouteStack.php#L49,第一个匹配的路线将获胜。

路线附加到主路线上priority setting https://github.com/zendframework/zf2/blob/release-2.1.3/library/Zend/Mvc/Router/SimpleRouteStack.php#L252-L280。较高优先级意味着首先检查路由。默认情况下,将读取第一个附加路由(如果它们都具有相同的优先级或根本没有优先级)。

'route-catchall' => array(
    'type' => 'regex',
    'options' => array(
        'regex' => '/api/v1/.*',
        'defaults' => array(
            'controller' => 'IndexController',
            'action'     => 'apiCatchAll',
        ),
    ),
    'priority' => -1000,
),
'route-test1' => array(
    'type' => 'literal',
    'options' => array(
        'route' => '/api/v1/route1',
        'defaults' => array(
            'controller' => 'IndexController',
            'action'     => 'apiRoute1',
        ),
    ),
    'priority' => 9001, // it's over 9000!
),

在这个例子中,route-test1由于优先级高,将首先匹配。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ZF2 - 如果路由器匹配多个路由,将调度什么? 的相关文章

  • zend smtp 邮件在 100 多封邮件后崩溃

    在发送新闻通讯类的邮件时 我遇到了这个奇怪的问题 在 for 循环中 我循环访问数据库中的所有用户 并尝试向他们发送一封包含一些基本信息的 HTML 邮件 现在的问题是 前 200 封左右的邮件运行良好 但随后脚本崩溃并给出以下错误 War
  • 如何从模型中获取 Zend\Db\Adapter 实例? (ZF2)

    我正在创建用于管理数据库实体的抽象模型 我已经有了EntityAbstract EntitySetAbstract and a ManagerAbstract楷模 在我的 ManagerAbstract 模型中 我需要一个Zend Db A
  • 限制 Apigility 中的结果

    我使用 Apigility 创建了一个代码连接 API 现在我正在使用标准创建存根 在我的PostResource有一种方法叫做fetchAll params array 我为该方法创建了代码 以便它返回一组可分页的结果 var Hydra
  • Zend 2 数据库事务?

    我们如何在 Zend 2 中使用事务 我在 API 中没有找到任何内容 Zend 1 的几个问题涉及常规 PDO 函数 但我在 Zend 2 中没有看到类似的内容 ZF2 这个部门的文档有点缺乏 开始交易 this gt adapter g
  • 如何在zendframework2中使用partial

    在ZF1中 我们在layout phtml文件中使用类似的部分 this gt partial header phtml array vr gt zf2 我们如何在 ZF2 中做到同样的事情 这可以通过以下方式实现 echo this gt
  • 如何强制作曲家重新安装库?

    我正在使用 ZF2 骨架应用程序 它有一个 gitignore 可以防止外部库提交到 git 在调试时 我喜欢在库的源代码中到处改变一些东西 以了解事情是如何工作的 如果这些是版本控制的 那么将它们恢复到原始状态将非常容易 如何强制 Com
  • Zend Framework 2 - 分页

    如何获取控制器操作中的页面详细信息 我使用了专辑的分页 iteratorAdapter new Zend Paginator Adapter Iterator this gt getAlbumTable gt fetchAll pagina
  • 如何将外部 javascript 文件添加到 Zend Framework 2 应用程序?

    我需要将 jQuery 和其他 javascript 文件添加到我的 Zend Framework 项目中 我正在尝试使用动作控制器来做到这一点 public function userinfoAction this gt view gt
  • 在 ZF2 中发送带有附件的电子邮件

    如何在 zf2 中发送包含 text plain text html 和附件的电子邮件 我使用此代码通过 smtp 发送电子邮件 files this gt params gt fromFiles smtp new Zend Mail Tr
  • 在zf2中配置多个数据库

    如何在 Zend Framework 2 中配置 和使用 多个数据库 目前我的 global php 中有这个 return array db gt array driver gt Pdo dsn gt mysql dbname my db
  • 如何验证 ZF2 中的复选框

    我已经阅读了许多针对 Zend Framework 缺乏默认复选框验证的解决方法 我最近开始使用 ZF2 但文档有点缺乏 有人可以演示如何使用 Zend 表单和验证机制验证复选框以确保其被选中吗 我正在为我的表单使用数组配置 使用 ZF 网
  • 在 URL 中发送参数的最佳且安全的方法

    我正在开发一个网站 该网站具有根据 id 更新和删除数据的功能 现在我担心的是我的网址是 www example com public controller action 1 如果行动是delete 任何人都可以change id from
  • 如何使用主义2和zend框架2中的缓存?

    请我在这里需要一些帮助 我已经搜索了很多但没有结果 我如何利用查询及其存储在memcache中的结果 我正在使用zend框架2和学说2 这是我在 module config php 中的配置 Doctrine config doctrine
  • 在 zf2 mvc 之外使用 Zend_Db zf2 模块

    我正在编写一个不基于 zf2 mvc 的 PHP 应用程序 我确实只想使用 Zend Db zf2 模块 我如何配置我的应用程序以了解 如何在需要的地方找到 Zend Db 相关的 PHP 文件 我使用 phyrus 下载了 zf2 Zen
  • 从 Zend Framework 2 中的路由获取 $_GET 参数

    Zend Framework 1 有一种非常简单的方法来解析 URL 路由并在 GET 超全局中设置找到的参数以便于访问 当然 您可以在控制器内使用 gt getParam something 但如果在 URL 中找到参数 则它是also可
  • ZF2表格格式化?

    我正在使用 ZF2 并有一个定义了一堆元素的表单 然后我将其呈现在我的 phtml 中 如下所示 它绘制了一个标签和一个单选按钮 我的问题是如何根据自己的喜好格式化这些元素 例如 使单选按钮水平显示而不是垂直显示 并且可能更改标签的位置 没
  • 具有多个 FROM 表的 TableGateway

    我想做一个简单的INNER JOINZend2 中的两个表之间 具体来说 我想在 Zend2 中这样做 SELECT FROM foo bar WHERE foo foreign id bar id 我有一个FooTable class F
  • Ubuntu 16.04 - Apache 2.4.18 - 请求 URI 太长

    我试图从 Google 图片搜索结果中保存图像 但是当我在查询字符串参数中发送图像的 src 时 会出现以下错误 Request URI Too Long The requested URL s length exceeds the cap
  • ZF2 将自定义属性添加到选择表单元素中的选项

    我想将自定义 HTML 属性添加到 Zend Framework 2 表单中的选择选项中 这是我的 Form 类中的 部分 代码 this gt add array name gt lieuRemplissage type gt Selec
  • zend框架验证模型中的数据而不是表单中的数据

    使用 Zend Framework 2 在我的应用程序中 要编辑数据库中的数据 可以编译 html 表单或发送 http post 请求 我的服务器作为 Web 服务实现 在第二种情况下 不会呈现表单 问题 如果当服务器收到不是从表单发送而

随机推荐

  • ProgressRing 控制在哪里?

    我正在尝试编写一个基于 Windows Phone 8 SDK 的应用程序 我不断看到有人提到 ProgressRing 控件 但我在工具箱或 xaml 设计器中没有看到它 我该如何使用这个 ProgressRing 是 Win8 UI 控
  • plot.ly(dash_core_components) 滑块颜色变化

    我昨天第一次见到了plot ly dash 并创建了一些交互式情节 我添加了dash core components Slider 对象如下面的代码 dcc Slider id month slider min 0 max 12 value
  • 使用 Ext JS 的 MVC 架构中 store.load() 的动态代理 URL

    我想在加载商店之前 更改商店的代理 这种情况下的具体问题是我没有找到正确的时刻 何时加载 详细地 我通过创建 EXTJS4 架构定义的视图 控制器 模型和存储来创建 MVC 模型 该视图是一个网格面板 它在自己的定义语句中定义了存储 Ext
  • 首先加载低分辨率背景图像,然后加载高分辨率背景图像

    当我的网站输出到客户端时 我试图优化它的大小 缓存时我减少到 1 9MB 和 29KB 问题是第一次加载包含的图像对于移动设备来说非常未优化 它具有 1080p 分辨率 所以我正在寻找一种方法 允许我首先加载低分辨率版本 min bg jp
  • MVC 验证:在哪里验证?

    我们说控制器层的模型验证是验证我们要操作的所有数据的正确位置 在这种情况下 如果我们将 UI 更改为另一个 记住我们的层必须完全解耦 新的数据验证原则将执行 在这种情况下 我们所有的内部规则都可能被违反 您可能会说数据模型是单独的层 该层
  • 如果一条边权重减少,则更新最短路径距离矩阵

    我们得到一个加权图 G 及其最短路径距离的矩阵 delta 因此 delta i j 表示从 i 到 j 的最短路径的权重 i 和 j 是图的两个顶点 最初给出的 delta 包含最短路径的值 突然 边 E 的权重从 W 减少到 W 如何在
  • 如何在通用 T 上加 1? [复制]

    这个问题在这里已经有答案了 下面是一个通用类型Foo 我怎样才能正确实施addOne method struct Foo
  • DevIL 库文件和依赖项

    好吧 事情就是这样 我有我需要的所有 IL 文件 即 DevIL dll DevIL lib ILU dll ILU lib ILUT dll ILUT lib config h config h in devil cpp wrapper
  • 如何向 src 中的请求 url 添加标头?

    Example img src https example com getImage q img ref And the https example com getImage要求我们发送一些指定的标头以使请求有效 有可能吗 还是我必须使用a
  • 如何拦截对Hash类构造函数的调用?

    我想在调用类 Hash 的构造函数或初始化 Hash 对象时执行一个函数 我已经使用实现了我的目标 class Hash def initialize p Constructor call end end 当 Hash 对象初始化如下时 上
  • iPhone 应用程序启动关闭的分配时间

    iPhone 应用程序 以及可能的其他重要例程 的启动和关闭需要花费多少时间 我的 iPhone 上的程序曾被过于热心的操作系统杀死吗 如果应用程序在 20 秒内没有响应 iPhone 上的看门狗计时器将终止您的应用程序 请注意 Xcode
  • 如何制作 iPython/Jupyter 中内联的 NLTK draw() 树

    对于 iPython Jupyter 中的 Matplotlib 绘图 您可以使笔记本绘图内联 matplotlib inline 如何对树的 NLTK draw 做同样的事情 这是文档http www nltk org api nltk
  • C# 中的多线程目录循环

    我试图循环遍历所有文件和文件夹 并对具有特定扩展名的所有文件执行操作 这种方法工作得很好 但我想使它成为多线程 因为当完成数万个文件时 它真的很慢 我会使用多线程进行成像会加快速度 我只是不确定在这种情况下如何使用线程 doStuff从文件
  • 加载时间:使用 PHP 的 DOMDocument 还是使用正则表达式解析 HTML 更快?

    我正在将图像从我的 Flickr 帐户提取到我的网站 并且我使用了大约九行代码来创建一个用于提取图像的 preg match all 函数 我已经读过好几次了 通过 DOM 解析 HTML 会更好 就我个人而言 我发现通过 DOM 解析 H
  • 向右移动菜单最后一项

    德尔福Xe2U4 主菜单项 文件 选项 帮助 名称 HelpMenuItem 2 个按钮 使用 StyleManager Xe2 在项目选项中启用 xe2 主题 并默认设置 Metro Blue Procedure TForm1 Right
  • 启用 Wi-Fi 时不接收移动状态状态更改事件

    当移动数据启用 禁用时我需要收到通知 为此 我使用 BroadcastReceiver 并注册到 ConnectivityManager CONNECTIVITY ACTION 事件 然而 只有当 Wi Fi 被禁用时才会触发该事件 一旦我
  • 按特定日期名称找出下周时间表的最佳方法

    想象我有一个名为NextSend代表DateTime Value 4 11 2011 10 30 00 AM Monday 假设我有一个必须每周在特定日期发送的时间表 Monday 在这种情况下 为了弄清楚下周的时间表 我最终得到了解决方案
  • 无法使用 Jena 写入大型 owl 文件

    我正在尝试将数据库表中包含的数据转换为一组三元组 因此我正在使用 Jena java 库编写一个 owl 文件 我已经成功地使用少量表记录 100 完成了此操作 这些记录对应于 owl 文件中的近 20 000 行 我对此感到满意 为了编写
  • IIS Windows 身份验证 401 未经授权

    我有一个想要使用 Windows 身份验证的子应用程序 我希望当用户第一次到达该页面时 即使在域中也会弹出登录框 当我关闭内核模式身份验证时 会弹出登录框 但在 3 次登录尝试后失败 并显示错误 401 未授权 如果我打开此功能 它甚至不会
  • ZF2 - 如果路由器匹配多个路由,将调度什么?

    那么 如果我有一个可能与许多路由匹配的 url 该怎么办 哪条路由会获胜 将调度哪个操作 是不是很简单 先定义 先调度 以下是路线示例 route catchall gt array type gt regex options gt arr