国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 php框架 YII yii框架怎么定義路由

yii框架怎么定義路由

Dec 11, 2019 am 11:47 AM
yii

yii框架怎么定義路由

路由和URL生成

當一個YII應(yīng)用開始處理一個請求的時候,它首先要做的便是將請求的URL轉(zhuǎn)化成一個路由。路由的作用是用于后續(xù)實例化相應(yīng)的控制器和操作,以便處理請求,整個處理過程便叫做路由。? ? ? ? ? ? ? ? ? ? ?(推薦學(xué)習(xí):yii框架

路由的逆過程叫做URL生成,是指用給定的路由和參數(shù)信息來生成一個URL。當使用生成的URL來發(fā)出請求的時候,路由處理的過程又能夠再次將其解析還原出原始的路由和參數(shù)信息。

主要負責路由和URL生成工作的是URL管理器,其被注冊成為應(yīng)用組件。URL管理器提供方法parseRequest()來解析請求,解析出其中的路由和參數(shù)信息。

而方法 createUrl() 用于將給定的路由和參數(shù)信息,生成一個URL。通過在應(yīng)用配置中配置URL管理器,可以讓你的應(yīng)用能夠識別任意的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后續(xù)被請求的話,它將被解析成上面的原始路由和參數(shù)信息。

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

URL格式?

URL管理器支持兩種URL格式:默認URL格式和漂亮URL格式。默認URL格式使用一個查詢參數(shù)r傳遞路由,其他參數(shù)按照正常方式放在URL中。

例如,URL /index.php?r=post/view&id=100 的路由為post/view和參數(shù)id為100。默認URL格式并不要求對URL管理器做任何配置。

漂亮URL格式是使用額外的路徑跟在入口腳本名之后,來展現(xiàn)路由和相關(guān)參數(shù)的。

例如,URL /index.php/post/100的額外路徑為/post/100,其展現(xiàn)出的路由為post/view和參數(shù)id為100。

如果要使用這種URL格式,你需要根據(jù)實際需求,設(shè)計一個URL規(guī)則集。你可以通過修改URL管理器中屬性enablePrettyUrl的值,來達到在這兩種URL格式之間切換的目的。

路由

路由的工作可以分為兩步:

1.從請求中解析出一個路由和相關(guān)參數(shù);

2.根據(jù)路由生成響應(yīng)的控制器操作,來處理該請求。

當使用默認URL格式的時候,解析出路由很簡單,只要獲取參數(shù)r的值便可;

當使用漂亮URL格式的時候,URL管理器會檢測URL規(guī)則集,從中找出與該請求匹配的路由。如果找不到規(guī)則與之匹配,將會拋出異常yii\web\NotFoundHttpException。

一旦從請求中解析出路由,接下來要做的就是創(chuàng)建與該路由相關(guān)的控制器操作。路由被斜線切割成幾個部分,例如,site/index會被切割成site和index。

每個部分都是一個ID,它們也許指向模塊、控制器或操作。從路由的第一個部分開始,應(yīng)該會執(zhí)行如下幾步來創(chuàng)建模塊(如果有的話)、控制器和操作:

1.設(shè)置應(yīng)用主體為當前模塊。

2.檢查當前模塊的 yii\base\Module::controllerMap 是否包含當前ID。如果是,會根據(jù)該表中的配置創(chuàng)建一個控制器對象,然后跳到步驟五執(zhí)行該路由的后續(xù)片段。

3.檢查該 ID 是否指向當前模塊中 yii\base\Module::modules 屬性里的模塊列表中的一個模塊。如果是,會根據(jù)該模塊表中的配置創(chuàng)建一個模塊對象,然后會以新創(chuàng)建的模塊為環(huán)境,跳回步驟二解析下一段路由。

4.將該 ID 視為控制器 ID,并創(chuàng)建控制器對象。用下個步驟解析路由里剩下的片段。

5.控制器會在他的 yii\base\Controller::actions()里搜索當前 ID。如果找得到,它會根據(jù)該映射表中的配置創(chuàng)建一個操作對象;反之,控制器則會嘗試創(chuàng)建一個與該 ID 相對應(yīng),由某個 action 方法所定義的行內(nèi)操作(inline action)。

上面這些步驟中,如果有任何錯誤發(fā)生,應(yīng)用都會拋出異常yii\web\NotFoundHttpException,意味著路由處理失敗。

以上是yii框架怎么定義路由的詳細內(nèi)容。更多信息請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔相應(yīng)法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

熱門話題

Laravel 教程
1601
29
PHP教程
1502
276
Yii2 vs Phalcon:哪個框架更適合開發(fā)顯卡渲染應(yīng)用? Yii2 vs Phalcon:哪個框架更適合開發(fā)顯卡渲染應(yīng)用? Jun 19, 2023 am 08:09 AM

在當前信息時代,大數(shù)據(jù)、人工智能、云計算等技術(shù)已經(jīng)成為了各大企業(yè)關(guān)注的熱點。在這些技術(shù)中,顯卡渲染技術(shù)作為一種高性能圖形處理技術(shù),受到了越來越多的關(guān)注。顯卡渲染技術(shù)被廣泛應(yīng)用于游戲開發(fā)、影視特效、工程建模等領(lǐng)域。而對于開發(fā)者來說,選擇一個適合自己項目的框架,是一個非常重要的決策。在當前的語言中,PHP是一種頗具活力的語言,一些優(yōu)秀的PHP框架如Yii2、Ph

Yii框架中的數(shù)據(jù)查詢:高效地訪問數(shù)據(jù) Yii框架中的數(shù)據(jù)查詢:高效地訪問數(shù)據(jù) Jun 21, 2023 am 11:22 AM

Yii框架是一個開源的PHPWeb應(yīng)用程序框架,提供了眾多的工具和組件,簡化了Web應(yīng)用程序開發(fā)的流程,其中數(shù)據(jù)查詢是其中一個重要的組件之一。在Yii框架中,我們可以使用類似SQL的語法來訪問數(shù)據(jù)庫,從而高效地查詢和操作數(shù)據(jù)。Yii框架的查詢構(gòu)建器主要包括以下幾種類型:ActiveRecord查詢、QueryBuilder查詢、命令查詢和原始SQL查詢

Symfony vs Yii2:哪個框架更適合開發(fā)大型Web應(yīng)用? Symfony vs Yii2:哪個框架更適合開發(fā)大型Web應(yīng)用? Jun 19, 2023 am 10:57 AM

隨著Web應(yīng)用需求的不斷增長,開發(fā)者們在選擇開發(fā)框架方面也越來越有選擇的余地。Symfony和Yii2是兩個備受歡迎的PHP框架,它們都具有強大的功能和性能,但在面對需要開發(fā)大型Web應(yīng)用時,哪個框架更適合呢?接下來我們將對Symphony和Yii2進行比較分析,以幫助你更好地進行選擇。基本概述Symphony是一個由PHP編寫的開源Web應(yīng)用框架,它是建立

如何使用PHP框架Yii開發(fā)一個高可用的云備份系統(tǒng) 如何使用PHP框架Yii開發(fā)一個高可用的云備份系統(tǒng) Jun 27, 2023 am 09:04 AM

隨著云計算技術(shù)的不斷發(fā)展,數(shù)據(jù)的備份已經(jīng)成為了每個企業(yè)必須要做的事情。在這樣的背景下,開發(fā)一款高可用的云備份系統(tǒng)尤為重要。而PHP框架Yii是一款功能強大的框架,可以幫助開發(fā)者快速構(gòu)建高性能的Web應(yīng)用程序。下面將介紹如何使用Yii框架開發(fā)一款高可用的云備份系統(tǒng)。設(shè)計數(shù)據(jù)庫模型在Yii框架中,數(shù)據(jù)庫模型是非常重要的一部分。因為數(shù)據(jù)備份系統(tǒng)需要用到很多的表和關(guān)

php框架laravel和yii區(qū)別是什么 php框架laravel和yii區(qū)別是什么 Apr 30, 2025 pm 02:24 PM

Laravel和Yii的主要區(qū)別在于設(shè)計理念、功能特性和使用場景。1.Laravel注重開發(fā)的簡潔和愉悅,提供豐富的功能如EloquentORM和Artisan工具,適合快速開發(fā)和初學(xué)者。2.Yii強調(diào)性能和效率,適用于高負載應(yīng)用,提供高效的ActiveRecord和緩存系統(tǒng),但學(xué)習(xí)曲線較陡。

yii與Docker:容器化和部署您的應(yīng)用程序 yii與Docker:容器化和部署您的應(yīng)用程序 Apr 02, 2025 pm 02:13 PM

使用Docker容器化和部署Yii應(yīng)用的步驟包括:1.創(chuàng)建Dockerfile,定義鏡像構(gòu)建過程;2.使用DockerCompose啟動Yii應(yīng)用和MySQL數(shù)據(jù)庫;3.優(yōu)化鏡像大小和性能。這不僅涉及到具體的技術(shù)操作,還包括理解Dockerfile的工作原理和最佳實踐,以確保高效、可靠的部署。

Yii2 vs Symfony:哪個框架更適合API開發(fā)? Yii2 vs Symfony:哪個框架更適合API開發(fā)? Jun 18, 2023 pm 11:00 PM

隨著互聯(lián)網(wǎng)的快速發(fā)展,API成為了各種應(yīng)用間數(shù)據(jù)交換的重要方式。因此,開發(fā)一款易于維護、高效、穩(wěn)定的API框架變得越來越重要。而在選擇API框架時,Yii2和Symfony是兩個備受開發(fā)者歡迎的選擇。那么,哪一個更適合API開發(fā)呢?本文將對這兩個框架進行比較,并給出一些結(jié)論。一、基本介紹Yii2和Symfony都是成熟的PHP框架,都有相應(yīng)的擴展,可以用于開

Yii2編程指南:運行Cron服務(wù)的方法 Yii2編程指南:運行Cron服務(wù)的方法 Sep 01, 2023 pm 11:21 PM

如果您問“Yii是什么?”查看我之前的教程:Yii框架簡介,其中回顧了Yii的優(yōu)點,并概述了2014年10月發(fā)布的Yii2.0的新增功能。嗯>在這個使用Yii2編程系列中,我將指導(dǎo)讀者使用Yii2PHP框架。在今天的教程中,我將與您分享如何利用Yii的控制臺功能來運行cron作業(yè)。過去,我在cron作業(yè)中使用了wget—可通過Web訪問的URL來運行我的后臺任務(wù)。這引發(fā)了安全問題并存在一些性能問題。雖然我在我們的啟動系列安全性專題中討論了一些減輕風險的方法,但我曾希望過渡到控制臺驅(qū)動的命令

See all articles