摘要:也提供了命名查詢的方式,比如需要獲取最近一個月內(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
摘要:簡述本文章是我對如何實現(xiàn)登錄做一個全面的邏輯解析。提醒注意在第步驟中,動態(tài)獲取無的域名,此步驟必須做域名的判斷處理,比如等這些可能出現(xiàn)的域名,以保證域名都能使用實現(xiàn)登錄退出的機制。 簡述 本文章是我對Yii2如何實現(xiàn)SSO登錄做一個全面的邏輯解析。事實上,在此之前我也寫過兩篇文章關(guān)于SSO登錄的實現(xiàn)方式以及進一步優(yōu)化,包括這篇文章也都是介紹Yii2的SSO登錄,逐步優(yōu)化不斷總結(jié)與分享,...
摘要:簡述本文章是我對如何實現(xiàn)登錄做一個全面的邏輯解析。提醒注意在第步驟中,動態(tài)獲取無的域名,此步驟必須做域名的判斷處理,比如等這些可能出現(xiàn)的域名,以保證域名都能使用實現(xiàn)登錄退出的機制。 簡述 本文章是我對Yii2如何實現(xiàn)SSO登錄做一個全面的邏輯解析。事實上,在此之前我也寫過兩篇文章關(guān)于SSO登錄的實現(xiàn)方式以及進一步優(yōu)化,包括這篇文章也都是介紹Yii2的SSO登錄,逐步優(yōu)化不斷總結(jié)與分享,...
摘要:簡述本文章是我對如何實現(xiàn)登錄做一個全面的邏輯解析。提醒注意在第步驟中,動態(tài)獲取無的域名,此步驟必須做域名的判斷處理,比如等這些可能出現(xiàn)的域名,以保證域名都能使用實現(xiàn)登錄退出的機制。 簡述 本文章是我對Yii2如何實現(xiàn)SSO登錄做一個全面的邏輯解析。事實上,在此之前我也寫過兩篇文章關(guān)于SSO登錄的實現(xiàn)方式以及進一步優(yōu)化,包括這篇文章也都是介紹Yii2的SSO登錄,逐步優(yōu)化不斷總結(jié)與分享,...
摘要:中的解決辦法面對什么的情況,在中有一個很好的方法。博客原文地址學(xué)習(xí)篇二在中借鑒的一些使用方法有很多地方都不完善,還望大家指出修正,如果你覺得這個對你有用,還請點個贊,謝謝 前段時間本來準(zhǔn)備學(xué)習(xí) Laravel 的,后來因為換了工作的原因,又回到自己常用的 Yii 。現(xiàn)在要將 Laravel 重拾回來,開始學(xué)習(xí)這個被PHPer們喜愛的東西。 上一篇敢關(guān)于 Laravel 的文章 【Lar...
閱讀 2566·2023-04-26 01:44
閱讀 2577·2021-09-10 10:50
閱讀 1420·2019-08-30 15:56
閱讀 2286·2019-08-30 15:44
閱讀 524·2019-08-29 11:14
閱讀 3428·2019-08-26 11:56
閱讀 3025·2019-08-26 11:52
閱讀 920·2019-08-26 10:27