Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >控制器和路由器的区别?

我目前正在为实践准备一个mvc框架,我有一些laravel经验,所以它是基于此松散的。我制作了一个路由器,它只返回您设置的url的指定视图。

现在,我还制作了一个控制器,它拆分url,并使用基url后面的第一部分作为控制器,第二部分作为操作。这将加载与控制器相对应的文件,并在该文件中加载与操作对应的方法。

因此,如果url类似于:url.com/user/index,它将加载一个UsersController.php文件,并在该文件中查找index()方法。

现在我想知道控制器和路由器到底有什么区别吗?它就像一个特定的?其中一个路由器只是有点简单,只是对一个确切的给定url和路由器的反应,并将其分割,并有更多的深度?

我目前所拥有的似乎有相当多的重叠。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-13 17:34:01

控制器位于模型和视图之间。它与双方进行通信,以便对请求作出答复。

路由器选择哪个控制器(以及该控制器上的哪个方法)处理请求。例如,它可能决定请求'product/ View / 123‘应该调用ProductController的View方法,将123作为参数传递。

路由器也可以转换urls。而不是像你说的那样,在url中使用方法和操作。您也可以访问www.example.com/members。路由器会将其转换为UsersController的Index方法。这允许“漂亮”urls的用户映射到逻辑上很好的控制器。

票数 7
EN

Stack Overflow用户

发布于 2015-02-27 09:14:24

(假定路由器不涉及网络硬件或木头工作工具!)

路由器接收请求,并决定哪些控制器/控制器方法将处理请求。

控制器接受请求并处理它!

现在,我还制作了一个控制器,它拆分url,并使用基url后面的第一部分作为控制器,第二部分作为操作。这将加载与控制器相对应的文件,并在该文件中加载与操作对应的方法。

这并不是真正的控制器(就MVC而言),它是路由的一部分。

例如,以GET uri: example.com/ parse /view/123为例,MVC路由器将解析uri并找到以下部分

  1. 文章
  2. 视图
  3. 123

默认情况下,大多数路由器现在会实例化articleController并调用它的view方法,作为参数传入123。(您也可以使用一些getUriSegment(segmentIdx)方法,这是框架的设计选择。)

ArticleController将有一个带有$articleId参数的view方法。此方法可能会执行如下操作:获取指定的项目(例如,从db通过模型),然后显示它(可能是通过返回模型返回的项目的视图)。

票数 8
EN

Stack Overflow用户

发布于 2015-01-13 17:36:32

路由器将请求指向控制器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27933802

复制
相关文章
RobotFramework接口测试方案
Robot Framework是用于验收测试和回归测试的通用测试自动化框架。它使用易于理解的表格数据语法,非常友好的实现了关键字驱动和数据驱动模式。它的测试功能可以通过使用Python或Java实现的测试库进行扩展,用户可以使用与创建测试用例相同的语法,从现有的关键字创建新的更高级别的关键字。
赵云龙龙
2020/02/13
3.5K0
RobotFramework接口测试方案
RobotFrameWork中使用自定义关键字
今天尝试在RF中使用一下自己写的关键字。 1、首先写一个py文件,如下,简单打印个message 2、在RF中点击library,把写的py文件加进来 3、使用函数mylog,有一个参数,也可以F5看
未来sky
2018/08/30
2.6K0
RobotFrameWork中使用自定义关键字
maven打包不执行测试用例
在执行maven打包时不需要执行测试用例,使用如下2种方式实现: -DskipTests=true : 不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。 -Dmaven.test.skip=true: 不执行测试用例,也不编译测试用例类
编程随笔
2019/09/11
1.8K0
maven打包不执行测试用例
RobotFramework 接口测试的公共资源
写到这里可以明显感觉到Robot Framework来实现内容的困难了,上面内容在正常的IDE里面几分钟就可以完成。RIDE中这个难度上升了数倍。在学完基础概念之后其实后续的内容都是基于这种模式来进行拓展,这时候又变成了对开发者个人其他能力的考验。
zx钟
2020/05/20
5040
maven执行单元测试失败后继续
最近在进行sonarqube与maven集成时,如果pom文件配置了sonarqube相关配置,那么在pom文件所在目录执行
johnhuster的分享
2022/03/28
1.8K0
自动化测试实战技巧:「用例失败重试机制」实现方案分享
在开展自动化测试工作时,经常会由于一些外在原因(如网络中断、返回超时)导致自动化测试用例运行失败,而这些失败并不是用例本身验证或被测程序存在Bug而引起的,更可气的是这些失败场景有可能还是偶发的,为了保证测试用例运行的稳定性和验证有效性,我们需要一种针对失败用例重试的运行机制。
测试开发技术
2020/06/28
1.6K0
自动化测试用例失败继续执行
当出现异常时,你希望标记出来这个错误,但不影响后面的测试脚本执行,在Nightwatch中如何做?
Peter Shen
2020/06/12
8170
RobotFramework工具试用
Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发(ATDD)。使用Apache License 2.0,由Robot Framework Foundation开发和赞助。Robot Framework被广泛地使用在端到端的验收测试中,生态体系非常丰富,更详细的信息可以参看http://robotframework.org。
用户6859632
2020/01/05
2.7K0
自动化测试实战技巧:「用例失败重试机制」实现方案分享
在开展自动化测试工作时,经常会由于一些外在原因(如网络中断、返回超时)导致自动化测试用例运行失败,而这些失败并不是用例本身验证或被测程序存在Bug而引起的,更可气的是这些失败场景有可能还是偶发的,为了保证测试用例运行的稳定性和验证有效性,我们需要一种针对失败用例重试的运行机制。
测试开发技术
2020/06/23
1.3K0
自动化测试实战技巧:「用例失败重试机制」实现方案分享
js中的this关键字,setTimeout(),setInterval()的执行过程
var test1 = { name: 'windseek1', showname: function () { console.log(this.name); } } var test2 = { name:'windseek2', showname: test1.showname } test2.showname() 运算结果是windseek2,由于test2.showname=test1.showname所以test2.showname()=test1.showname(); test2.shown
windseek
2018/06/14
1.3K0
RobotFrameWork编写接口测试及如何断言
本篇是第一系列(Http接口自动化)的第五课程,如果对系列课程大纲不清楚的,可以查看《RobotFramework系列免费课程-开课了~》。
测试开发技术
2020/01/17
1.3K0
RobotFrameWork编写接口测试及如何断言
Kibana关闭停止失败解决办法
ElasticSearch服务异常停止了,这时Kibana提示无法连接到ElasticSearch
程裕强
2022/05/06
8240
Robot Framework测试框架用例脚本设计方法
Robot Framework是一个通用的关键字驱动自动化测试框架。测试用例以HTML,纯文本或TSV(制表符分隔的一系列值)文件存储。通过测试库中实现的关键字驱动被测软件。Robot Framework灵活且易于扩展。它非常适合测试有不同接口的复杂软件:用户接口、命令行,Web服务,专有的编程接口等。
顾翔
2020/08/11
2.7K0
Robot Framework测试框架用例脚本设计方法
robotframewor安装及项目实战
一、robotframework介绍 诺基亚公司出品的robotframework robotframework官网 特点: 1.简单的来说robotframework是一个通用型的自动测试框架 2.RF适合几乎所有的软件自动化测试系统框架 3.提供了强大的标准库和第三方类库 4.方便上手和维护,集成容易 5.清晰的测试报告和日志系统 6.持续集成等 7.基本除了桌面应用的自动化做不了,其他的自动化都可以使用它来实现 8.详细的日志系统,定位失败问题精准 二、安装版本 安装记录 # gui交互界面 pip
懿曲折扇情
2022/08/24
5200
robotframewor安装及项目实战
自动化测试框架Robot Framework - 简介、安装部署、启动RIDE
Robot Framework是一款Python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发(ATDD)。
wangmcn
2022/07/26
4.1K0
自动化测试框架Robot Framework - 简介、安装部署、启动RIDE
使用RobotFramework的JavaRemoteLibrary
终于被迫使用了Java的远程接口库(为了同时使用Java和python的用例库,且为了在pybot下跑速度能快一些),路途比实际想的要坎坷,记录下来。
叉叉敌
2022/03/11
4290
Mybatis中执行String类型的自己拼写的sql,不执行配置文件中的sql
Mybatis中执行String类型的自己拼写的sql,不执行配置文件中的sql
业余草
2019/01/21
1.4K0
Mybatis中执行String类型的自己拼写的sql,不执行配置文件中的sql
怎么样导入RobotFramework 自定义关键字(库文件)
第一步:在D:/python/Lib/site-packages 建立库文件文件夹 MyLibrary
IT小马哥
2020/03/18
1.9K0
点击加载更多

相似问题

robotframework:[错误]用户停止执行

17

RobotFramework:在RobotFramework中定义RobotFramework关键字

15

如何停止整个测试执行,但在RobotFramework中有PASS状态?

20

Robotframework -获取失败关键字/失败堆栈跟踪

20

Robotframework:套件中不包含测试

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档