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

d82cd00daefe0c70df0f91a406c96d1a.png

路由和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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值