成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

使用YII 做開發(fā)的總結(jié)

mykurisu / 1254人閱讀

摘要:也提供了命名查詢的方式,比如需要獲取最近一個月內(nèi)發(fā)布的篇文章,如果經(jīng)常性的用到這個查詢,可以使用命名查詢的方式來寫。

這兩天用YII開發(fā)了用戶管理的功能,以前雖然也用YII框架開發(fā)過一些功能,但是總感覺對YII的使用還不是很熟練。
這次真正動手之前,先復(fù)習(xí)了一遍 yii-guide-1.1.14.pdf 這本書,上次看的時候太過于粗略了,這次仔仔細細的閱讀了一遍。
說一下最直觀的感受
1 對于表單字段的校驗,簡化了開發(fā)工作量
記得以前寫表單驗證,一般都是下面這樣的代碼

   if (!isset($_GET["token"]){
         echo "缺少參數(shù) token"
         return ;
   }
   $token = $_GET["token"];
   if (length(token) < 8 || length(token) > 20){
         echo "token 的長度應(yīng)該介于 8 到20個字符";
   }

在YII框架中,會精簡為下面這樣的代碼:

   return array(
        array("token","required"),
        array("token", "length","max"=>20, "min"=>8, "message"=>"token 的長度應(yīng)該介于 8 到20個字符")
   )

當(dāng)有很多參數(shù)需要驗證的時候,會節(jié)省大量的驗證代碼

2 對于數(shù)據(jù)庫操作的簡化
YII框架提供了兩種操作數(shù)據(jù)庫的方式,
一個叫YII DAO, 一個叫YII AR
YII DAO ,比較適用于編寫SQL操作數(shù)據(jù)庫的場景,構(gòu)造合適的SQL語句,然后交給底層的DAO幫你執(zhí)行
AR 這種方式,使用的是ORM模型,對于對象的操作一般使用 object.save(), object.delete(), object.find();
這樣的方式,AR 還提供了像是 beforeSave(), afterSave()這樣的事件處理機制,可以在對象保存的時候統(tǒng)一做一些事情,比如更新某個記錄的更新時間,創(chuàng)建時間

AR 另外提供了關(guān)聯(lián)表的操作,可以方便的對關(guān)聯(lián)表中的對象進行獲取等等的操作,使用的是lazy load的方式,不會拖慢查詢效率。只有在明確訪問關(guān)聯(lián)表的屬性的時候,才去執(zhí)行查詢。
AR 也提供了命名查詢的方式,比如需要獲取最近一個月內(nèi)發(fā)布的10 篇文章,如果經(jīng)常性的用到這個查詢,可以使用命名查詢的方式來寫。
例如:

  class Article extends CArtiveRecord{
    public function scope(){
        return array(
           "recentlyPublished" => array(
              "condition" => " to_days(now())-to_days(create_time) < 30 ", //設(shè)定條件,創(chuàng)建時間在30天之內(nèi)
              "limit"  => 3
            )
        );
    }  
  }

然后在使用的時候就可以使用 Article::model()->recentlyPublished()->find(); 來執(zhí)行查詢

3 其他

YII框架支持擴展,今天找了一個 Yii email的擴展,用來發(fā)送激活郵件

對于密碼的支持,從YII 1.1.14版本開始,增加了對密碼的支持,提供了一個幫助類,用來生成和校驗密碼

對于驗證碼的支持,內(nèi)置了生成和驗證驗證碼的組件,在demo中有現(xiàn)成的代碼可以參考

對于國際化的支持,雖然這個不是硬需求,但是今天還是體驗了一下,通過 yiic message命令可以自動生成國際化的翻譯文件,當(dāng)然,里面的內(nèi)容需要自己填寫。在最開始的時候有這樣一個框架,后續(xù)萬一有國際化的需求的話,也可以支持。
其他像是緩存組件,主題這樣的功能,現(xiàn)在還沒有用到,但是看YII框架都考慮到了,真正要寫出一個這樣的框架還是很有難度的。

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/31849.html

相關(guān)文章

  • 全面解析Yii2跨域SSO登錄邏輯

    摘要:簡述本文章是我對如何實現(xiàn)登錄做一個全面的邏輯解析。提醒注意在第步驟中,動態(tài)獲取無的域名,此步驟必須做域名的判斷處理,比如等這些可能出現(xiàn)的域名,以保證域名都能使用實現(xiàn)登錄退出的機制。 簡述 本文章是我對Yii2如何實現(xiàn)SSO登錄做一個全面的邏輯解析。事實上,在此之前我也寫過兩篇文章關(guān)于SSO登錄的實現(xiàn)方式以及進一步優(yōu)化,包括這篇文章也都是介紹Yii2的SSO登錄,逐步優(yōu)化不斷總結(jié)與分享,...

    daryl 評論0 收藏0
  • 全面解析Yii2跨域SSO登錄邏輯

    摘要:簡述本文章是我對如何實現(xiàn)登錄做一個全面的邏輯解析。提醒注意在第步驟中,動態(tài)獲取無的域名,此步驟必須做域名的判斷處理,比如等這些可能出現(xiàn)的域名,以保證域名都能使用實現(xiàn)登錄退出的機制。 簡述 本文章是我對Yii2如何實現(xiàn)SSO登錄做一個全面的邏輯解析。事實上,在此之前我也寫過兩篇文章關(guān)于SSO登錄的實現(xiàn)方式以及進一步優(yōu)化,包括這篇文章也都是介紹Yii2的SSO登錄,逐步優(yōu)化不斷總結(jié)與分享,...

    2json 評論0 收藏0
  • 全面解析Yii2跨域SSO登錄邏輯

    摘要:簡述本文章是我對如何實現(xiàn)登錄做一個全面的邏輯解析。提醒注意在第步驟中,動態(tài)獲取無的域名,此步驟必須做域名的判斷處理,比如等這些可能出現(xiàn)的域名,以保證域名都能使用實現(xiàn)登錄退出的機制。 簡述 本文章是我對Yii2如何實現(xiàn)SSO登錄做一個全面的邏輯解析。事實上,在此之前我也寫過兩篇文章關(guān)于SSO登錄的實現(xiàn)方式以及進一步優(yōu)化,包括這篇文章也都是介紹Yii2的SSO登錄,逐步優(yōu)化不斷總結(jié)與分享,...

    xingpingz 評論0 收藏0
  • 【Laravel學(xué)習(xí)篇 · 二】在Laravel中借鑒Yiiparams使用方法

    摘要:中的解決辦法面對什么的情況,在中有一個很好的方法。博客原文地址學(xué)習(xí)篇二在中借鑒的一些使用方法有很多地方都不完善,還望大家指出修正,如果你覺得這個對你有用,還請點個贊,謝謝 前段時間本來準(zhǔn)備學(xué)習(xí) Laravel 的,后來因為換了工作的原因,又回到自己常用的 Yii 。現(xiàn)在要將 Laravel 重拾回來,開始學(xué)習(xí)這個被PHPer們喜愛的東西。 上一篇敢關(guān)于 Laravel 的文章 【Lar...

    liuhh 評論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

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<