路由和URL生成

当一个YII运用入手下手处置惩罚一个请求的时刻,它首先要做的就是将请求的URL转化成一个路由。路由的作用是用于后续实例化相应的控制器和操纵,以便处置惩罚请求,全部处置惩罚历程便叫做路由。 (引荐进修:yii框架)

路由的逆历程叫做URL生成,是指用给定的路由和参数信息来生成一个URL。当运用生成的URL来发出请求的时刻,路由处置惩罚的历程又可以再次将其剖析复原出原始的路由和参数信息。

重要担任路由和URL生成事情的是URL管理器,其被注册成为运用组件。URL管理器供应要领parseRequest()来剖析请求,剖析出个中的路由和参数信息。

而要领 createUrl() 用于将给定的路由和参数信息,生成一个URL。经由过程在运用设置中设置URL管理器,可以让你的运用可以辨认恣意的URL花样,而不必修正已有程序代码。比方,你能运用以下的代码来生成一个URL。

use yii\helpers\Url;

// Url::to() calls UrlManager::createUrl() to create a URL

$url = Url::to(['post/view', 'id' => 100]);

取决于URL管理器的设置,如上代码生成的URL的模样看上去像下面如许的。假如这个URL后续被请求的话,它将被剖析成上面的原始路由和参数信息。

/index.php?r=post/view&id=100

/index.php/post/100

/posts/100

URL花样

URL管理器支撑两种URL花样:默许URL花样和美丽URL花样。默许URL花样运用一个查询参数r通报路由,其他参数依据一般体式格局放在URL中。

比方,URL /index.php?r=post/view&id=100 的路由为post/view和参数id为100。默许URL花样并不请求对URL管理器做任何设置。

美丽URL花样是运用分外的途径跟在进口脚本名以后,来展示路由和相干参数的。

比方,URL /index.php/post/100的分外途径为/post/100,其展示出的路由为post/view和参数id为100。

假如要运用这类URL花样,你须要依据现实需求,设想一个URL划定规矩集。你可以经由过程修正URL管理器中属性enablePrettyUrl的值,来到达在这两种URL花样之间切换的目标。

路由

路由的事情可以分为两步:

1.从请求中剖析出一个路由和相干参数;

2.依据路由生成相应的控制器操纵,来处置惩罚该请求。

当运用默许URL花样的时刻,剖析出路由很简单,只需猎取参数r的值便可;

当运用美丽URL花样的时刻,URL管理器会检测URL划定规矩集,从中找出与该请求婚配的路由。假如找不到划定规矩与之婚配,将会抛出非常yii\web\NotFoundHttpException。

一旦从请求中剖析出路由,接下来要做的就是建立与该路由相干的控制器操纵。路由被斜线切割成几个部份,比方,site/index会被切割成site和index。

每一个部份都是一个ID,它们或许指向模块、控制器或操纵。从路由的第一个部份入手下手,应该会实行以下几步来建立模块(假如有的话)、控制器和操纵:

1.设置运用主体为当前模块。

2.搜检当前模块的 yii\base\Module::controllerMap 是不是包括当前ID。假如是,会依据该表中的设置建立一个控制器对象,然后跳到步骤五实行该路由的后续片断。

3.搜检该 ID 是不是指向当前模块中 yii\base\Module::modules 属性里的模块列表中的一个模块。假如是,会依据该模块表中的设置建立一个模块对象,然后会以新建立的模块为环境,跳回步骤二剖析下一段路由。

4.将该 ID 视为控制器 ID,并建立控制器对象。用下个步骤剖析路由里剩下的片断。

5.控制器会在他的 yii\base\Controller::actions()里搜刮当前 ID。假如找获得,它会依据该映射表中的设置建立一个操纵对象;反之,控制器则会尝试建立一个与该 ID 相对应,由某个 action 要领所定义的行内操纵(inline action)。

上面这些步骤中,假如有任何毛病发作,运用都邑抛出非常yii\web\NotFoundHttpException,意味着路由处置惩罚失利。

以上就是yii框架怎样定义路由的细致内容,更多请关注ki4网别的相干文章!

收藏 | 0

php yii框架路由,yii框架怎样定义路由_PHP开发框架教程相关推荐

  1. php框架里有模版引擎吗,Yii框架用模版引擎了吗?_PHP开发框架教程

    Yii框架用模版引擎了吗? Yii框架没有用模版引擎,Yii照样采纳原始PHP作为模板语法,该框架是一个基于组件的高性能PHP框架,用于开发大型Web运用,而且采纳严厉的OOP编写,并供了Web运用开 ...

  2. php 框架 phpstudy,phpstudy怎样装置swoole扩大_PHP开发框架教程,swoole

    起首装置phpstudy 这一步人人能够到http://lamp.phpstudy.net 来装置,全部流程约莫须要50-90分钟 看你的cpu了,cpu机能越好的越快 (引荐进修: swoole视频 ...

  3. yii引入php文件,Yii2框架中CSS、JS文件引入要领_PHP开发框架教程

    在yii2中,因为yii2版本升级致使了,许多yii2的用法跟yii1有着很大的区分,这几天一直在view层的视图界面徜徉着,碰到什么问题呢? (引荐进修:yii框架) 问题就是搞不清我该怎样去引入C ...

  4. php框架进入命令行,swoole为何要用命令行来启动_PHP开发框架教程

    swoole: PHP的协程高性能网络通信引擎,运用完整同步的代码完成异步顺序.PHP代码无需分外增添任何关键词,底层自动举行协程调理,完成异步IO. 基于 swoole 的服务端应该在命令行体式格局 ...

  5. Yii 框架学习--01 框架入门

    Yii 是一个高性能的,适用于开发 WEB2.0 应用的 PHP 框架. Yii目前有两个主要的版本: 2.0 和 1.1.本文以YII 2.0.7为例. 环境需求 Yii2.0 框架有一些系统上的需 ...

  6. 查看 php yii脚本位置,Yii框架分析(一)入口脚本index.php的启动过程剖析

    1. 启动 网站的唯一入口程序 index.php : $yii=dirname(__FILE__)./../framework/yii.php;$config=dirname(__FILE__)./ ...

  7. php程序yii是什么意思,【PHP开辟框架】yii是什么意义

    Yii Framework是一个基于组件.用于开辟大型 Web 运用的高机能 PHP 框架.Yii供应了本日Web 2.0运用开辟所须要的险些统统功用.Yii是最有效力的PHP框架之一.Yii是创始人 ...

  8. 【分享】高性能的PHP框架:Yii PHP Framework

    Yii 是什么Yii 是一个基于组件.用于开发大型 Web 应用的高性能 PHP 框架.它将 Web 编程中的可重用性发挥到极致, 能够显著加速开发进程.Yii(读作"易")代表简 ...

  9. 【Yii框架 一 】PHP框架,Yii概述

    PHP的框架,只接触过三种:ThinkPHP.Laravel.Yii,前两种作了解,项目中用的Yii. 一.3种框架简述 1. ThinkPHP ThinkPHP是我发布的第一个PHP项目用的框架,那 ...

最新文章

  1. oracle 11g wm_concat 、 listagg 函数的使用(合并数据)
  2. 什么是数据库范式(NF)?从一范式到五范式分别是什么?
  3. WCF技术剖析之三十二:一步步创建一个完整的分布式事务应用
  4. EVT DVT PVT TP PP MP分别指哪个阶段
  5. vs linux 交叉编译,Visual Studio交叉编译器提供对ARM的支持
  6. MySQL month()函数
  7. Redis pub/sub机制在实际运用场景的理解(转载)
  8. 华为云WeLink正式发布,这是更懂企业的智能工作平台一枚!
  9. artcam 9.0英文版本下载_tomcat 下载安装
  10. QueryPerformanceFrequency 和 QueryPerformanceCounter用法
  11. 计算机维修七方法,七种常用方案解决电脑没声音故障
  12. SQL不同服务器数据库之间的数据操作整理(完整版)
  13. 防止ARP欺骗的方法
  14. 威锋 VL817-Q7 HUB 芯片,一进四出USB3.1gen1 5G速率传输。
  15. linux彻底清除历史记录
  16. 利用requests模块进行数据爬取的基本操作
  17. Kingdee 云星空 7.7 自定义BOM成本查询 替代料用量取0 金额取0
  18. 怎么把html格式转换成数字,怎么把数字转变成文本格式
  19. python twisted教程_twisted基础教程.pdf
  20. 《部落与弯刀》,我的第一个真正意义上的规则驱动开放世界游戏,快做完了

热门文章

  1. 这回又来个 ionic2 的微信支付 (遇到一些莫名的BUG)
  2. 仙剑考卷 (测试一下你迷仙剑的程度有多深)
  3. TBS腾讯浏览器服务x5内核打开本地doc(doc docx xlsx pdf ppt)文档(官网最新43903版本SDK)
  4. js小练习--模拟满天星
  5. 超神学院计算机战斗,超神学院OL电脑版
  6. 关于360与QQ的这次争端
  7. wm wap 抓包办法
  8. 用计算机算出来的爱你一生一世,励志语录 等待一次爱你一生一世,需要我用一辈子来爱你...
  9. 使用Python玩转高等数学(1):集合与区间
  10. Android和iPhone截屏快捷键