摘要:出于實戰(zhàn)基礎(chǔ)加之自語言的書籍出版以來,幾乎所有的編程書籍都講述了一個的例子作為開始。操作,其實就是一個是動作的意思,也可以描述為我們前面說的響應(yīng)地址。
作者:白狼 出處:http://www.manks.top/document/yii_first_application.html 本文版權(quán)歸作者,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。
之前考慮過要不要砍掉該章節(jié),直接上手教你搭建簡單的博客系統(tǒng)。出于實戰(zhàn)基礎(chǔ)加之自C語言的書籍出版以來,幾乎所有的編程書籍都講述了一個Hello World的例子作為開始。雖然我們僅僅是學(xué)習(xí)Yii2,但是好歹我們這也是高大上的Yii嘛,我們也尊重傳統(tǒng),來一段Hello World快速入門!
我將學(xué)會什么
了解到MVC設(shè)計模式中的V和C是什么
如何創(chuàng)建一個操作(action)
如何創(chuàng)建對應(yīng)的視圖文件(模板)
簡單了解到操作的命名規(guī)范
什么是路由
開始之前的準(zhǔn)備
Yii是什么?為什么要學(xué)Yii呢?是啥,就是一個框架,如果要加一些形容詞,我覺得高性能、易擴(kuò)展等詞最適合不過了。
MVC相信就不用多說了,Yii2無疑更好的基于MVC對代碼進(jìn)行了一定的組織。簡潔優(yōu)雅不說......我們還是不拍yii馬屁了,說重點(diǎn)。
我們知道,客戶端像服務(wù)端發(fā)起一個請求,服務(wù)端是必須要有對應(yīng)的響應(yīng)地址才是可以的。這個響應(yīng)的地址在Yii2中又是怎么進(jìn)行描述的呢?先來介紹下什么是操作。
操作,其實就是一個action(action是動作的意思),也可以描述為我們前面說的響應(yīng)地址。TA是控制器(controller)的組成部分,再說白了其實就是類(class)的操作方法(function)。
如何創(chuàng)建一個操作呢?給類創(chuàng)建一個方法你會不,非要說的那么白才明白不是太好,對吧。
也就是說我們需要先有一個類(控制器)唄,沒錯!如下示例就是包含了兩個操作 index 和create的控制器test。
namespace frontendcontrollers; use yiiwebController; class TestController extends Controller { public function actionIndex () { } public function actionCreate () { } }
有同學(xué)要較真了,控制器不是test嗎,為啥你的是TestController?還有啊,說好的操作名是index和create為啥你的都有前綴action?controller跟action去掉可不可以?答:不可以,必須帶上!Yii2規(guī)定:聲明的控制器必須帶上Controller后綴,同時操作必須帶上前綴action!
通常情況下,控制器用來處理請求有關(guān)的資源類型,其實就是做一些操作的,比如我們要處理文章之類的數(shù)據(jù),控制器應(yīng)命名為Article恰當(dāng)些,盡量做到見名知意。Action當(dāng)然也是如此,比如我們要創(chuàng)建一篇文章,action理應(yīng)為add或者create為妙。
那有同學(xué)要說了,我就想叫操作名為createArticle怎么辦?天兒熱,先涼拌著,慢慢說。
yii2中操作名(action)遵循駝峰式命名,也就是說如果你是多個單詞,請保證你的命名規(guī)則是actionCreateArticle而不是actionCreatearticle!當(dāng)然,這只是一種規(guī)范,你不這樣做也沒人攔你。需要提醒注意的是多個單詞駝峰式命名,訪問操作的時候,多個單詞需要像create-article這樣用連接符連接而不是createArticle哦
接下來我們訪問已經(jīng)創(chuàng)建好的操作:
首先我們先配置下域名advanced.dev指向frontendweb目錄,我們后文所指的該域名均指向這里
地址欄輸入 http://advanced.dev/index.php?r=test/index 訪問看看結(jié)果,我們會發(fā)現(xiàn)一片空白,什么也沒有!很明顯,我們的的操作方法index里空空如也,沒做任何輸出。要不我們做點(diǎn)什么?別急,我們先來看看這個地址,TA究竟做了什么,為什么能請求到我們指定的操作。
這就需要我們引入一個新的概念-路由。感覺挺好哈,這名字都沒聽過。不過不要緊,我換個說法你就明白了,訪問地址,路由就是我們的訪問地址!明白了吧,TA就是用于定位控制器操作的地址!我們這里重點(diǎn)是講明白概念,不做深究,具體細(xì)節(jié)需要的可以去查看官方文檔。
輸出Hello World!
該明白的該說的都說了,饒了一大圈終于該說本篇文章的重點(diǎn)了-輸出Hello World。艾瑪,可把我憋壞了。
public function actionIndex () { echo "Hello World!"; }
現(xiàn)在在回過來看看,是不是很簡單!
我們改變點(diǎn)什么,看看如何動態(tài)的輸出Hello Ketty,Hello Anmy?
public function actionIndex ($name) { echo "Hello {$name}!"; }
該操作方法接收一個參數(shù)name,理應(yīng)程序上會輸出Hello, xxx的字樣。
現(xiàn)在我們依然訪問 http://advanced.dev/index.php?r=test/index 會發(fā)現(xiàn)頁面報錯了,提示錯誤缺少參數(shù):name!也就是說,我們訪問該操作時應(yīng)該傳進(jìn)來一個參數(shù)name!我們把地址修改為 http://advanced.dev/index.php?r=test/index&name=Kitty ,這個時候頁面正常輸出了Hello Kitty!手動修改地址欄的name值,頁面上輸出的內(nèi)容也會隨之進(jìn)行改變!
我們知道,操作其實就類似MVC中的C層,C層也就是處理業(yè)務(wù)邏輯的一層,如此一來,像上面在控制器的操作方法中輸出內(nèi)容明顯就不太合適了。
既然要輸出內(nèi)容,我們看看Yii2的V層又是如何進(jìn)行操作(此操作非彼操作,不要妄加揣摩)的呢?
Hello World!
???????
說明一點(diǎn):frontednviews下面創(chuàng)建的文件夾應(yīng)與控制器保持一致,如此一來才方便我們對很多文件進(jìn)行管理。
接下來看看如何才能對視圖index.php進(jìn)行操作?
public function actionIndex ($name) { // echo "Hello {$name}!"; return $this->render("index"); }
僅僅是在之前的操作index內(nèi)寫了一行代碼,用于操作視圖文件。此時我們很有必要在視圖文件內(nèi)動態(tài)輸出Hello xxx!這個時候只需要在render方法傳遞參數(shù)即可。
// controller public function actionIndex ($name) { // echo "Hello {$name}!"; return $this->render("index", [ "name" => $name, ]); } //view ???????Hello = $name ?>!
如此一來,我們既掌握了視圖,又實現(xiàn)了我們想要輸出的Hello xxx!
但是,這個時候,如果我們地址欄輸入的參數(shù)name值等于,我們想要的結(jié)果是Hello !實際上并非如此!如此一來,就難免會遭遇XSS攻擊!為了安全起見,頁面上輸出的信息我們很有必要安全地處理一下!
Hello = yiihelpersHtml::encode($name) ?>!
???????
實際上這里我們也僅僅是簡單的談了一下如何避免XSS跨站攻擊。
下一節(jié)我們將要直接開講簡單的博客管理系統(tǒng),本篇我們主要涉及的基本概念 操作、視圖、路由等,希望你能掌握透徹,有任何問題下方均可留言交流!
[考慮目前國內(nèi)網(wǎng)站大部分采集文章十分頻繁,更有甚者不注明原文出處,原作者更希望看客們查看原文,以防有任何問題不能更新所有文章,避免誤導(dǎo)!]
查看原文
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/21615.html
摘要:為了演示特性的基本使用,我將會帶領(lǐng)大家構(gòu)建一個簡單的博客管理系統(tǒng)。目前為止,我們借助生成了一系列操作。有好提示實際開發(fā)中,后臺管理理應(yīng)利用協(xié)助開發(fā),可快速提高開發(fā)效果。 作者:白狼 出處:http://www.manks.top/document/easy_blog_manage_system.html 本文版權(quán)歸作者,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出...
摘要:官方文檔給出了兩種的安裝方式。一種是通過歸檔文件安裝,另一種則是通過進(jìn)行安裝。為啥要通過歸檔文件的方式安裝呢,其實你我心里都是明白的,因為另一種安裝方式失敗了,別無選擇嘛。 作者:白狼 出處:http://www.manks.top/document/install.html 本文版權(quán)歸作者,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)...
摘要:之速率限制什么是速率限制權(quán)威指南翻譯過來為限流,為防止濫用,你應(yīng)該考慮對您的限流。如果在規(guī)定的時間內(nèi)接收了一個用戶大量的請求,將返回響應(yīng)狀態(tài)代碼這意味著過多的請求。 Yii2.0 RESTful API 之速率限制 什么是速率限制? 權(quán)威指南翻譯過來為限流,為防止濫用,你應(yīng)該考慮對您的 API 限流。 例如,您可以限制每個用戶 10 分鐘內(nèi)最多調(diào)用 API 100 次。 如果在規(guī)定的時...
摘要:記住它,一點(diǎn)點(diǎn)來,萬物均可優(yōu)化。下一篇將為你講解對一個萬數(shù)據(jù)的表程序優(yōu)化實戰(zhàn)真實例子之二開刀數(shù)據(jù)表完本文原創(chuàng)發(fā)布于微信公眾號北哥小報嚴(yán)謹(jǐn)?shù)脑瓌?chuàng)技術(shù)文,還有一些其他研究。 showImg(https://segmentfault.com/img/bVPBSr?w=1200&h=500); 這是一篇真實案例,并不是理論課,阿北將同步我的整個優(yōu)化之路,優(yōu)化之路慢慢長,對大家拋磚引玉已達(dá)目的,...
閱讀 3597·2021-09-08 10:46
閱讀 1221·2019-08-30 13:17
閱讀 2412·2019-08-30 13:05
閱讀 1239·2019-08-29 15:29
閱讀 2925·2019-08-29 11:31
閱讀 577·2019-08-26 12:13
閱讀 1589·2019-08-26 11:42
閱讀 1935·2019-08-23 18:37