成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Yii2的MVC新特性

sushi / 1893人閱讀

摘要:而且現(xiàn)在的中,每個輸出變?yōu)榱朔祷兀拖裆厦娴囊粯?,你現(xiàn)在可以完全返回一個字符串了,有沒有一絲絲的影子不過,你在的中只需認識這些新特性基本就足矣,因為一些更基本的東西跟是一樣的撒,完全不用怕,我是說如果你上手過的話。

這篇文章主要來看看在Yii2之中的MVC,當然,最核心的思想還是跟Yii1.1一樣的,但是我今天是想來看看在Yii2里的MVC跟Yii1.1有什么不同,或者應(yīng)該直接說,Yii2的改進在哪里,以至于使得官方敢向著最好的PHP框架目標進擊!

廢話就不多說了,下面來看看分別M-V-C這三個部分:

模型(Model):

Yii之中的Models都繼承與yiiaseModel,通常是用來存儲數(shù)據(jù)并對這些數(shù)據(jù)設(shè)置一些特定的驗證規(guī)則(rules())。每一個Model Class其實很多時候都是跟一些更加核心的類(比如Active Record)配合著使用,而在Yii2中,Active Record的增強也讓我很驚喜,后續(xù)我打算在寫一遍文章來專門介紹Yii2的Active Record。

在每一個Model當中,attributesattributes label其實跟Yii1.1差不多,但讓我特別值得拍手稱快的是在Yii2中,除了rules()函數(shù)之外,還有scenarios()函數(shù)來增強Yii2的Model驗證,rules()函數(shù)具體擔當為Model的每一個attributes進行過濾驗證,而scenarios()則可以根據(jù)不同的場景需要來聲明哪一個attributes是無需驗證的(Which means safe here);我們來看下面的例子:

 [4, 32]],
            ["first_name", "string", "max" => 128],
            ["password", "required","on" => "signup"],
        ];
    }

    public function scenarios()
    {
        return [

            "signup" => ["username", "password"],
            "update" => ["username", "first_name"],
        ];
    }
}

這個例子中的password field只分配給Model中的signup 場景(scenario),所以有關(guān)password的驗證只在signup這個scenario起作用,個人覺得這個是Yii2的Model中一個很牛逼的升級,因為這種機制的產(chǎn)生使得我們在開發(fā)的時候?qū)σ恍?b>attributes的驗證和分配有了更靈活的掌控感,大大提高我們對表單可用性和場景化應(yīng)用的設(shè)計開發(fā)。

多個attributes的分配也有一些細微的變化,我們之前在Yii1.1的時候,經(jīng)常會這樣:

if (isset($_POST["userModel"]))
{
   $model->attributes = $_POST["userModel"];
}

而在Yii2中,你只需要這樣:

$model->load($_POST);

這里的關(guān)鍵就是load()函數(shù)會自動檢查在$model->formName().定義的$_POST的索引

視圖(Views)

在Yii2的Views中也有一些小小的變化,最明顯的變化莫過于render()函數(shù)了,現(xiàn)在它會返回一個值,而不是像Yii1.1的那樣輸出(output)值,比如:

public function actionIndex()
{
    $models = Posts::find()->all();
    echo $this->render("index", array("models" => $models));
}

看到了沒,render的內(nèi)容現(xiàn)在可以直接用echo來輸出了,先不管這是怎么回事(更多細節(jié)我會在下面的Controller部分里講解)。還有一點就是,Yii2還有官方的擴展(official extensions)來支持一些常見的模板引擎如:smartytwig等。喜歡這些模版引擎的同學(xué),你們有福氣了。

在Views還有一個值得注意的地方就是$this變量,在Yii1.1中,$this可以說就是鏈接Controller和Views的中介;而在Yii2中,$this代表的是yiiwebView組件,這使得我們可以在view當中設(shè)置一些很有用的Views中的屬性比如:網(wǎng)頁的title,meta等,甚至是注冊js 腳本也是OK的,是不是有一種很直觀的感受,跟寫原生的html一樣,我想要什么title就要什么,That is cool!

控制器(Controllers)

首先直接來看一下代碼:

render("index");
    }

    public function actionTest()
    {
        // 只在瀏覽器中打印 "test" 字符串,cool
        return "test";
    }
}

這里你有沒有看到use yiiwebController?沒錯,Yii2中已充分開始使用PHP命名空間,當初在Yii1.1的時候一直聽說Yii2會使用更高級的PHP特性來完全重寫,果然啊,點個贊。而且現(xiàn)在的Controller中,每個輸出變?yōu)榱朔祷?,就像上面?b>actionTest()一樣,你現(xiàn)在可以完全返回一個字符串了,有沒有一絲絲Laravel的影子?不過,你在Yii2的Controller中只需認識這些新特性基本就足矣,因為一些更基本的東西跟Yii1.1是一樣的撒,完全不用怕,(我是說如果你上手過Yii1.1的話)。

寫在最后

正如你在這篇文章看到的一樣,在Yii2中幾乎所有的MVC組件變化都使得Yii2更好用了,我相信這會帶給開發(fā)者更好的的開發(fā)體驗,畢竟Yii2中看到了一絲絲優(yōu)雅的樣子!所以,各位還在苦惱應(yīng)該上手哪個PHP框架的同學(xué)們,請不要猶豫,Yii2就是一個極好的選擇??顸c這里:http://www.yiiframework.com/

[原文來自] http://www.jellybool.com/post/yii2-mvc-components

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/31908.html

相關(guān)文章

  • Yii2系列教程二:MVC Forms 和 Layouts

    摘要:而且很明顯地,我們可以看到,一旦輸入框在失去焦點的時候,如果里面沒有輸入任何內(nèi)容,每個輸入框就會有相應(yīng)的錯誤提示,用戶體驗很不錯。 原文來自: https://jellybool.com/post/programming-with-yii2-exploring-mvc-forms-a... 上一篇文章我們簡單地實現(xiàn)了Yii2框架安裝和Hello World,而在這一篇文章當中...

    ThreeWords 評論0 收藏0
  • yii2實戰(zhàn)教程之第一個Yii程序

    摘要:出于實戰(zhàn)基礎(chǔ)加之自語言的書籍出版以來,幾乎所有的編程書籍都講述了一個的例子作為開始。操作,其實就是一個是動作的意思,也可以描述為我們前面說的響應(yīng)地址。 作者:白狼 出處:http://www.manks.top/document/yii_first_application.html 本文版權(quán)歸作者,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究...

    Near_Li 評論0 收藏0
  • Yii2.0框架 MVC 最佳實踐

    摘要:框架最佳實踐最佳實踐在設(shè)計良好的應(yīng)用中,控制器很精練,包含的操作代碼簡短如果你的控制器很復(fù)雜,通常意味著需要重構(gòu),轉(zhuǎn)移一些代碼到其他類中。層業(yè)務(wù)邏輯層框架由,,組成,執(zhí)行流程一般是在訪問獲取數(shù)據(jù),通過渲染頁面。 Yii2.0框架 MVC 最佳實踐 Controller最佳實踐 在設(shè)計良好的應(yīng)用中,控制器很精練,包含的操作代碼簡短; 如果你的控制器很復(fù)雜,通常意味著需要重構(gòu), 轉(zhuǎn)移一些代...

    keithxiaoy 評論0 收藏0
  • 再看Yii2

    摘要:之前有兩篇文章寫了一些關(guān)于的和的,現(xiàn)在來全局性地看一看相對于到底有哪些改善。先說安裝方法,在中已經(jīng)使用來管理各種依賴關(guān)系,你在安裝的時候完全可以用來進行安裝,而且,還支持兩個不同的安裝版和。 之前有兩篇文章寫了一些關(guān)于Yii 2.0的MVC和Yii 2.0的Actived Record,現(xiàn)在來全局性地看一看Yii 2.0相對于Yii 1.1到底有哪些改善。個人總結(jié)有一下幾個: 1.Y...

    waruqi 評論0 收藏0
  • YII2快速學(xué)習(xí)筆記

    摘要:高性能始終是的首要目標之一。版是上代的老版本,現(xiàn)在處于維護狀態(tài)。版是一個完全重寫的版本,采用了最新的技術(shù)和協(xié)議,包括依賴包管理器代碼規(guī)范命名空間特質(zhì)等等。所以,我們學(xué)習(xí)版本。啟用本鏡像服務(wù)系統(tǒng)全局配置即將配置信息添加到的全局配置文件中。 工作中需要用到Y(jié)II框架,于是乎,系統(tǒng)的學(xué)習(xí)下這套框架,詳細教程請看考該站完整系列:YII2教程 一、YII簡介 1、什么是YII Yii 是一個高性...

    kbyyd24 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<