亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁(yè) php框架 YII yii框架怎麼定義路由

yii框架怎麼定義路由

Dec 11, 2019 am 11:47 AM
yii

yii框架怎麼定義路由

路由與URL產(chǎn)生

#當(dāng)一個(gè)YII應(yīng)用程式開(kāi)始處理一個(gè)請(qǐng)求的時(shí)候,它首先要做的便是將請(qǐng)求的URL轉(zhuǎn)換成一個(gè)路由。路由的作用是用於後續(xù)實(shí)例化對(duì)應(yīng)的控制器和操作,以便處理請(qǐng)求,整個(gè)處理過(guò)程便叫做路由。 ? ? ? ? ? ? ? ? ? ? ?(建議學(xué)習(xí):yii架構(gòu)

路由的逆過(guò)程叫做URL生成,指用來(lái)給予的路由與參數(shù)資訊來(lái)產(chǎn)生一個(gè)URL。當(dāng)使用產(chǎn)生的URL來(lái)發(fā)出請(qǐng)求的時(shí)候,路由處理的過(guò)程又能夠再次將其解析還原出原始的路由和參數(shù)資訊。

主要負(fù)責(zé)路由和URL產(chǎn)生工作的是URL管理器,其被註冊(cè)成為應(yīng)用程式元件。 URL管理員提供方法parseRequest()來(lái)解析請(qǐng)求,解析出其中的路由和參數(shù)資訊。

而方法 createUrl() 用於將給定的路由和參數(shù)訊息,產(chǎn)生一個(gè)URL。透過(guò)在應(yīng)用程式設(shè)定中設(shè)定URL管理器,可以讓你的應(yīng)用程式能夠辨識(shí)任意的URL格式,而不用修改已有程式碼。例如,你能使用如下的程式碼來(lái)產(chǎn)生一個(gè)URL。

use yii\helpers\Url;
// Url::to() calls UrlManager::createUrl() to create a URL
$url = Url::to(['post/view', 'id' => 100]);

#取決於URL管理器的配置,如上程式碼產(chǎn)生的URL的樣子看起來(lái)像下面這樣的。假如這個(gè)URL後續(xù)被請(qǐng)求的話,它將被解析成上面的原始路由和參數(shù)資訊。

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

URL格式?

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

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

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

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

如果要使用這種URL格式,你需要依照實(shí)際需求,設(shè)計(jì)一個(gè)URL規(guī)則集。你可以透過(guò)修改URL管理器中屬性enablePrettyUrl的值,來(lái)達(dá)到這兩種URL格式之間切換的目的。

路由

路由的工作可以分成兩個(gè)步驟:

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

2.根據(jù)路由產(chǎn)生回應(yīng)的控制器操作,來(lái)處理該請(qǐng)求。

使用預(yù)設(shè)URL格式的時(shí)候,解析出路由很簡(jiǎn)單,只要取得參數(shù)r的值便可;

當(dāng)使用漂亮URL格式的時(shí)候,URL管理器會(huì)偵測(cè)URL規(guī)則集,從中找出與該請(qǐng)求相符的路由。如果找不到規(guī)則與之匹配,將會(huì)拋出異常yii\web\NotFoundHttpException。

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

每個(gè)部分都是一個(gè)ID,它們也許指向模組、控制器或操作。從路由的第一個(gè)部分開(kāi)始,應(yīng)該會(huì)執(zhí)行以下幾步來(lái)建立模組(如果有的話)、控制器和操作:

1.設(shè)定應(yīng)用程式主體為目前模組。

2.檢查目前模組的 yii\base\Module::controllerMap 是否包含目前ID。如果是,會(huì)根據(jù)該表中的配置建立一個(gè)控制器對(duì)象,然後跳到步驟五執(zhí)行該路由的後續(xù)片段。

3.檢查該 ID 是否指向目前模組中 yii\base\Module::modules 屬性裡的模組清單中的一個(gè)模組。如果是,會(huì)根據(jù)該模組表中的配置建立一個(gè)模組對(duì)象,然後會(huì)以新建立的模組為環(huán)境,跳回步驟二解析下一段路由。

4.將該 ID 視為控制器 ID,並建立控制器物件。用下個(gè)步驟解析路由裡剩下的片段。

5.控制器會(huì)在他的 yii\base\Controller::actions()裡搜尋目前 ID。如果找到,它會(huì)根據(jù)該映射表中的配置建立一個(gè)操作物件;反之,控制器則會(huì)嘗試建立一個(gè)與該 ID 相對(duì)應(yīng),由某個(gè) action 方法所定義的行內(nèi)操作(inline action)。

上面這些步驟中,如果有任何錯(cuò)誤發(fā)生,應(yīng)用程式都會(huì)拋出例外yii\web\NotFoundHttpException,表示路由處理失敗。

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

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話題

Laravel 教程
1597
29
PHP教程
1488
72
Yii2 vs Phalcon:哪個(gè)框架更適合開(kāi)發(fā)顯示卡渲染應(yīng)用? Yii2 vs Phalcon:哪個(gè)框架更適合開(kāi)發(fā)顯示卡渲染應(yīng)用? Jun 19, 2023 am 08:09 AM

在當(dāng)前資訊時(shí)代,大數(shù)據(jù)、人工智慧、雲(yún)端運(yùn)算等技術(shù)已成為了各大企業(yè)關(guān)注的熱點(diǎn)。在這些技術(shù)中,顯示卡渲染技術(shù)作為一種高效能圖形處理技術(shù),受到了越來(lái)越多的關(guān)注。顯示卡渲染技術(shù)廣泛應(yīng)用於遊戲開(kāi)發(fā)、影視特效、工程建模等領(lǐng)域。而對(duì)於開(kāi)發(fā)者來(lái)說(shuō),選擇一個(gè)適合自己專案的框架,是一個(gè)非常重要的決策。在目前的語(yǔ)言中,PHP是一種相當(dāng)有活力的語(yǔ)言,一些優(yōu)秀的PHP框架如Yii2、Ph

Yii框架中的資料查詢:有效率地存取數(shù)據(jù) Yii框架中的資料查詢:有效率地存取數(shù)據(jù) Jun 21, 2023 am 11:22 AM

Yii框架是一個(gè)開(kāi)源的PHPWeb應(yīng)用程式框架,提供了眾多的工具和元件,簡(jiǎn)化了Web應(yīng)用程式開(kāi)發(fā)的流程,其中資料查詢是其中一個(gè)重要的元件之一。在Yii框架中,我們可以使用類似SQL的語(yǔ)法來(lái)存取資料庫(kù),從而有效率地查詢和操作資料。 Yii框架的查詢建構(gòu)器主要包括以下幾種類型:ActiveRecord查詢、QueryBuilder查詢、命令查詢和原始SQL查詢

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

隨著Web應(yīng)用需求的不斷增長(zhǎng),開(kāi)發(fā)者在選擇開(kāi)發(fā)框架方面也越來(lái)越有選擇的空間。 Symfony和Yii2是兩個(gè)備受歡迎的PHP框架,它們都具有強(qiáng)大的功能和效能,但在面對(duì)需要開(kāi)發(fā)大型網(wǎng)路應(yīng)用程式時(shí),哪個(gè)框架更適合呢?接下來(lái)我們將對(duì)Symphony和Yii2進(jìn)行比較分析,以幫助你更好地進(jìn)行選擇?;靖攀鯯ymphony是一個(gè)由PHP編寫(xiě)的開(kāi)源Web應(yīng)用框架,它是建立

php如何使用Yii3框架? php如何使用Yii3框架? May 31, 2023 pm 10:42 PM

隨著互聯(lián)網(wǎng)的不斷發(fā)展,Web應(yīng)用程式開(kāi)發(fā)的需求也越來(lái)越高。對(duì)於開(kāi)發(fā)人員而言,開(kāi)發(fā)應(yīng)用程式需要一個(gè)穩(wěn)定、高效、強(qiáng)大的框架,這樣可以提高開(kāi)發(fā)效率。 Yii是一款領(lǐng)先的高效能PHP框架,它提供了豐富的特性和良好的性能。 Yii3是Yii框架的下一代版本,它在Yii2的基礎(chǔ)上進(jìn)一步優(yōu)化了效能和程式碼品質(zhì)。在這篇文章中,我們將介紹如何使用Yii3框架來(lái)開(kāi)發(fā)PHP應(yīng)用程式。

如何使用PHP框架Yii開(kāi)發(fā)一個(gè)高可用的雲(yún)端備份系統(tǒng) 如何使用PHP框架Yii開(kāi)發(fā)一個(gè)高可用的雲(yún)端備份系統(tǒng) Jun 27, 2023 am 09:04 AM

隨著雲(yún)端運(yùn)算技術(shù)的不斷發(fā)展,資料的備份已經(jīng)成為了每個(gè)企業(yè)必須要做的事情。在這樣的背景下,開(kāi)發(fā)一款高可用的雲(yún)端備份系統(tǒng)尤其重要。而PHP框架Yii是一款功能強(qiáng)大的框架,可以幫助開(kāi)發(fā)者快速建立高效能的Web應(yīng)用程式。以下將介紹如何使用Yii框架開(kāi)發(fā)一款高可用的雲(yún)端備份系統(tǒng)。設(shè)計(jì)資料庫(kù)模型在Yii框架中,資料庫(kù)模型是非常重要的一環(huán)。因?yàn)橘Y料備份系統(tǒng)需要用到很多的表和關(guān)

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

Laravel和Yii的主要區(qū)別在於設(shè)計(jì)理念、功能特性和使用場(chǎng)景。 1.Laravel注重開(kāi)發(fā)的簡(jiǎn)潔和愉悅,提供豐富的功能如EloquentORM和Artisan工具,適合快速開(kāi)發(fā)和初學(xué)者。 2.Yii強(qiáng)調(diào)性能和效率,適用於高負(fù)載應(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)建過(guò)程;2.使用DockerCompose啟動(dòng)Yii應(yīng)用和MySQL數(shù)據(jù)庫(kù);3.優(yōu)化鏡像大小和性能。這不僅涉及到具體的技術(shù)操作,還包括理解Dockerfile的工作原理和最佳實(shí)踐,以確保高效、可靠的部署。

Yii2 vs Symfony:哪個(gè)框架比較適合API開(kāi)發(fā)? Yii2 vs Symfony:哪個(gè)框架比較適合API開(kāi)發(fā)? Jun 18, 2023 pm 11:00 PM

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

See all articles