Yii是一個(gè)PHP框架,用於開發(fā)各種類型的Web應(yīng)用。 Yii官方將其定義為高效能、基於組件的框架。
就個(gè)人的經(jīng)驗(yàn)而言,總結(jié)Yii具有以下特質(zhì):
Yii比較「潮」。
Yii開發(fā)團(tuán)隊(duì)一直關(guān)注業(yè)界Web開發(fā)的最新技術(shù),並注意吸收當(dāng)下最受歡迎的技術(shù)。可以說,近年來(lái)Web開發(fā)中最潮的技術(shù)都可以在Yii身上或多或少的看到影子。例如,剛開始的時(shí)候Yii帶著明顯的Ruby on Rails風(fēng)格;Yii2中剛剛實(shí)現(xiàn)的命名空間等PHP最新特性支援等。一個(gè)跟得上潮流和趨勢(shì)的框架,才具有吸引力和生命力,學(xué)習(xí)起來(lái)才有意思、有意義。
Yii比較「易」。
正如其名字的發(fā)音,Yii是一個(gè)比較易學(xué)、易用的框架。程式碼品質(zhì)很高,有許多可以學(xué)習(xí)的地方。註解清晰、文件豐富閱讀程式碼難度不高。社群活躍,官方論壇有中文區(qū),國(guó)內(nèi)論壇人氣也還OK,知識(shí)取得容易。架構(gòu)相對(duì)穩(wěn)定,從Yii1.1到Y(jié)ii2的變化來(lái)看,許多原來(lái)的約定和沈澱的經(jīng)驗(yàn)都還適用。
Yii比較「全」。
就Web開發(fā)而言,無(wú)論是哪種類型的應(yīng)用、無(wú)論是哪個(gè)開發(fā)階段的常見問題,Yii都有成熟、高效、可靠的解決方案。對(duì)於典型的Web開發(fā)而言,這已經(jīng)足夠了。例如,偽靜態(tài)化、國(guó)際化、RESTful等,Yii都有提供程式設(shè)計(jì)的框架。但是,從規(guī)模上來(lái)講,Yii還算不上一個(gè)大型框架。個(gè)人對(duì)其的評(píng)價(jià)是一個(gè)中型偏輕點(diǎn)的框架,對(duì)於絕大多數(shù)的應(yīng)用開發(fā)而言,肯定是充分、夠用的了。
Yii比較「快」。
Yii官方把運(yùn)作效率當(dāng)作一個(gè)重要的特點(diǎn)來(lái)宣傳。從實(shí)際使用來(lái)看,在諸多PHP框架中,確實(shí)效率上具有一定優(yōu)勢(shì)。但個(gè)人認(rèn)為這點(diǎn)其實(shí)不是最重要的特質(zhì)。對(duì)於框架的使用者,也就是開發(fā)人員來(lái)講,更重要的是開發(fā)效率。由於Yii架構(gòu)合理,Web開發(fā)中常用的思路和模式都可以很順地套上使用。在Web開發(fā)中常遇到的一些細(xì)節(jié)上的問題,Yii也提供了許多現(xiàn)成解決方案,拿來(lái)就可以使用,非常有效率、方便。開發(fā)效率高,對(duì)於開發(fā)者、開發(fā)團(tuán)隊(duì)而言,更為重要。
要感謝Yii開發(fā)團(tuán)隊(duì)精益求精的不懈努力,為廣大Web開發(fā)者創(chuàng)造如此優(yōu)秀的框架。本人自Yii1.1起就開始接觸並使用Yii了,由於工作和愛好關(guān)係,也接觸過一些框架了??偟恼f,至今對(duì)Yii很滿意, 最心儀的是兩點(diǎn):學(xué)了Yii,就學(xué)到了許多當(dāng)下最流行、最成熟的東西;開發(fā)起快,改進(jìn)來(lái)快。
Yii2.0的亮點(diǎn)
Yii有兩個(gè)最主要的版本:Yii1.1和Yii2.0。 Yii1.1是舊的版本,在寫這本書時(shí),最新版本號(hào)是1.1.15。 Yii1.1現(xiàn)在已經(jīng)不再進(jìn)行新的開發(fā)了,官方只是進(jìn)行維護(hù),更新安全漏洞等,不會(huì)再有新的功能特性的引入。而Yii2.0是在Yii1.1的基礎(chǔ)上完全推倒重寫的一個(gè)框架,吸收了許多當(dāng)前最新的技術(shù)和開發(fā)中的主流約定, 是最新一代Web開發(fā)框架的代表。附錄1:Yii2.0 對(duì)比 Yii1.1 的重大改進(jìn) 部分介紹了Yii2.0對(duì)比Yii1.1的重大改進(jìn)。以下我們簡(jiǎn)單介紹Yii2.0的一些比較突出的特點(diǎn):
運(yùn)用了PHP命名空間、Trait、 PSR標(biāo)準(zhǔn) 、Composer和Bower套件管理器, 等新技術(shù)新標(biāo)準(zhǔn)。
實(shí)現(xiàn)了 依賴注入和依賴注入容器 以及 服務(wù)定位器(Service Locator) 等新架構(gòu)新模式。
Yii2.0格外重視安全性,採(cǎi)取一系列手段有效防止SQL注入、XSS攻擊、CSRF攻擊、cookie篡改等。
廣泛支援各類SQL和NOSQL資料庫(kù),高效實(shí)現(xiàn)了Active Record等資料庫(kù)查詢、操作介面,提供資料庫(kù)遷移、複製、 讀寫分離等功能。
只需極少量的程式碼就可以實(shí)現(xiàn)完全符合標(biāo)準(zhǔn)的RESTful API。
支援各種粒度、介質(zhì)的快取機(jī)制。
提供多種認(rèn)證和授權(quán)手段基於cookie和基於令牌的認(rèn)證,RBAC等權(quán)限控製手段,支援OpenID,OAuth1,OAuth2等。
支援Bootstrap,jQuery UI,提供了豐富的Widget掛件供使用。
完善的國(guó)際支持,提供符合 ICU標(biāo)準(zhǔn) 的時(shí)間、複數(shù)等格式化工具和訊息翻譯、視圖翻譯等功能。
除了支援Twig和Smarty 2個(gè)主流的PHP模版引擎外,開發(fā)者還可以自己寫擴(kuò)充支援其他引擎。
為苦命碼農(nóng)提供了 Yii調(diào)試工具條 和 Gii代碼生成器 以及 文件生成器 等高效開發(fā)工具。
整合了 Codeception 和 Faker,並與DB Migration結(jié)合,提供了一個(gè)fixture框架,方便測(cè)試和開發(fā)。
提供了一個(gè)簡(jiǎn)單應(yīng)用模板和進(jìn)階應(yīng)用模板,適用於不同的開發(fā)場(chǎng)景,都可以幫助開發(fā)者盡快建立自己的應(yīng)用。
詳細(xì)的Yii2.0功能特性,請(qǐng)查看 官方說明 。
背景知識(shí)
請(qǐng)留意,雖然本書以Yii2為主要內(nèi)容,但並未要求讀者俱備Yii1.1的開發(fā)經(jīng)驗(yàn)。雖然具有這些背景知識(shí)可以更快的掌握Yii2,但在講解過程中,本書會(huì)幫助沒有Yii1.1相關(guān)知識(shí)的讀者補(bǔ)充有關(guān)的概念。只要有了這些概念,讀者並不需要從頭開始學(xué)習(xí)Yii1.1,就可以直接上手Yii2了。
當(dāng)然,Yii作為一個(gè)PHP框架,讀者朋友最好能夠了解一下PHP,並不需要多精通,只需要看得懂代碼,會(huì)寫簡(jiǎn)單的代碼, 編程的時(shí)候大概知道要使用哪些函數(shù),就基本足夠了,邊用邊學(xué),也是一種學(xué)習(xí)方法。
同時(shí),Yii還是一個(gè)物件導(dǎo)向的框架。這意味著在程式碼組織和問題解決的思維上,Yii都體現(xiàn)了物件導(dǎo)向的想法。要用Yii來(lái)開發(fā),最好也要遵循這個(gè)想法。因此,讀者最好對(duì)物件導(dǎo)向程式設(shè)計(jì)有一定的了解。其實(shí),看一個(gè)程式設(shè)計(jì)師水準(zhǔn)的高低,不單是對(duì)於某種語(yǔ)言、某種開發(fā)框架的熟練程度。更重要的,是看其解決問題的想法和方法。其中一大類方法就是物件導(dǎo)向方法。從這點(diǎn)來(lái)看,雖然學(xué)習(xí)和使用Yii並不需要多高深的物件導(dǎo)向的方法。但身為過來(lái)人,還是希望各位讀者朋友可以有系統(tǒng)地、全面地學(xué)習(xí)物件導(dǎo)向的開發(fā)方法。特別是Web開發(fā)中常用的設(shè)計(jì)模式,本書也會(huì)在涉及時(shí),進(jìn)行專門講解。
如何閱讀本書
這不是一本「快速入門」、「一週精通」的書,本書的一個(gè)非常重要的目的和出發(fā)點(diǎn)是剖析Yii2.0的原理,使讀者既知其然, 又知其所以然,這就注定了不可能一蹴可幾。書中有大量的程式碼,需要剖析資料結(jié)構(gòu)、追溯呼叫堆疊、追蹤程式碼流程。雖然我們力求生動(dòng)、簡(jiǎn)潔,但讀者朋友們還是要有「古佛青燈」的心理準(zhǔn)備,不浮、不躁,潛心練好內(nèi)功,紮實(shí)錘煉底子, 早日練成絕活。
在內(nèi)容上,本書直指Yii2.0的本質(zhì),求精不求全,對(duì)於相關(guān)的PHP、HTTP等諸多知識(shí)最多在講到時(shí)點(diǎn)一點(diǎn),淺償輒止, 沒能夠展開介紹。因此,對(duì)於涉及的關(guān)聯(lián)知識(shí)、背景知識(shí),要充分利用搜尋引擎等工具,進(jìn)行自學(xué)與補(bǔ)充。
在篇章結(jié)構(gòu)上,本書大致上依照逐步深入的格局安排內(nèi)容。同時(shí),各部分的內(nèi)容保持相對(duì)獨(dú)立, 盡量做到每個(gè)單獨(dú)頁(yè)面的內(nèi)容,都可獨(dú)立成篇。因此,初次接觸Yii2.0的讀者朋友,建議循序漸進(jìn),依序閱讀。而有一定基礎(chǔ)的讀者則可以依照個(gè)人興趣與嗜好,自由選擇學(xué)習(xí)切入點(diǎn),在遇到有疑問的知識(shí)點(diǎn)時(shí), 再按圖索驒找相關(guān)的頁(yè)面。
在 Yii 基礎(chǔ) 部分,依序介紹了 屬性(Property) ,事件(Event) ,行為(Behavior) 等Yii中最基礎(chǔ)的知識(shí), 是理解整個(gè)Yii框架的最基本的概念。
在 Yii 約定 部分,主要講解了Yii約定俗成的一些套路、設(shè)定,解決的是在開發(fā)者未作任何指定的情況下, Yii的默認(rèn)行為方式的問題,用於加深對(duì)Yii實(shí)際使用的理解。這一部分主要包括 Yii應(yīng)用的目錄結(jié)構(gòu)和入口腳本 , 別名(Alias) , Yii的類別自動(dòng)載入機(jī)制 , 環(huán)境和設(shè)定檔 , 配置項(xiàng)目(Configuration) 等內(nèi)容。
在 Yii 模式 部分,剖析了Yii是如何實(shí)現(xiàn)一些當(dāng)前Web開發(fā)中最主流和成熟的設(shè)計(jì)模式。學(xué)習(xí)這些設(shè)計(jì)模式,有助於深入理解Yii的機(jī)制,更難得的是提升讀者朋友本身的開發(fā)設(shè)計(jì)水準(zhǔn)。這一部分主要講了 MVC , 依賴注入和依賴注入容器 , 服務(wù)定位器(Service Locator) 三種設(shè)計(jì)模式。
本網(wǎng)站聲明
本站所有資源都是由網(wǎng)友投搞發(fā)佈,或轉(zhuǎn)載各大下載站,請(qǐng)自行檢測(cè)軟件的完整性! 本站所有資源僅供學(xué)習(xí)與參攷,請(qǐng)勿用於商業(yè)用途,否則產(chǎn)生的一切後果將由您自己承擔(dān)! 如有侵權(quán)請(qǐng)聯(lián)繫我們刪除下架,聯(lián)繫方式: admin@php.cn
相關(guān)推薦
深入理解Yii2-0
深入理解Yii2-0
網(wǎng)頁(yè)製作
2018-02-02
《深入理解Bootstrap》
《深入理解Bootstrap》
網(wǎng)頁(yè)製作
2017-12-15
深入理解Bootstrap-徐濤著
深入理解神奇的Bootstrap
php電子書
2018-03-03
深入理解神奇的Bootstrap
深入理解神奇的Bootstrap
網(wǎng)頁(yè)製作
2018-01-19
黑馬雲(yún)課堂8天深入理解Python影片教學(xué)課程資料
8天深入理解Python影片教學(xué)課件資料
課件源碼
2017-08-16
深入理解php:進(jìn)階技巧、物件導(dǎo)向與核心技術(shù)(原書第3版) 中文pdf掃描版[76MB]
深入理解php:進(jìn)階技巧、物件導(dǎo)向與核心技術(shù)(原書第3版) 中文pdf掃描版[76MB]
php電子書
2017-09-30
手工烘焙美食網(wǎng)站模板
手工烘焙美食網(wǎng)站範(fàn)本網(wǎng)站範(fàn)本是提供各種手工烘焙美食宣傳網(wǎng)站範(fàn)本下載。提示:本範(fàn)本呼叫到Google字體庫(kù),可能會(huì)出現(xiàn)頁(yè)面開啟比較緩慢。
前端模板
2023-10-30
現(xiàn)代人工智慧寫作服務(wù)公司網(wǎng)站模板
現(xiàn)代人工智慧寫作服務(wù)公司網(wǎng)站範(fàn)本是提供人工智慧寫作服務(wù)的公司宣傳網(wǎng)站範(fàn)本下載。提示:本範(fàn)本呼叫到Google字體庫(kù),可能會(huì)出現(xiàn)頁(yè)面開啟比較緩慢。
前端模板
2023-10-30
熱門推薦
TP5實(shí)戰(zhàn)_教學(xué)管理系統(tǒng)整站源碼
本套教程,以一個(gè)真實(shí)的學(xué)校教學(xué)管理系統(tǒng)為案例,手把手教會(huì)您如何在一張白紙上,從零開始,一步一步的用ThinkPHP5框架快速開發(fā)出一個(gè)商業(yè)項(xiàng)目,讓您快速入門TP5項(xiàng)目開發(fā)。
課件源碼
2017-08-11
php常用函數(shù)總結(jié)表
php常用的函數(shù),開發(fā)會(huì)經(jīng)常需要用上的函數(shù)
課件源碼
2017-08-26
PHP實(shí)戰(zhàn)天龍八部之仿愛奇藝電影網(wǎng)站課程
PHP實(shí)戰(zhàn)天龍八部之仿愛奇藝電影網(wǎng)站課程
課件源碼
2018-04-16
TP5企業(yè)站開發(fā)原始碼
本站《ThinkPHP5企業(yè)站點(diǎn)快速開發(fā)課程》配套
課件源碼
2017-08-21
Thinkphp6.0正式版影片教學(xué)
Thinkphp6.0正式版影片教學(xué)
課件源碼
2021-12-03
thinkphp3.2.3部落格模版
thinkphp3.2.3部落格模版
課件源碼
2017-08-14
通用後臺(tái)管理系統(tǒng)實(shí)戰(zhàn)開發(fā)(Thinkphp6+Layui)相關(guān)課件
通用後臺(tái)管理系統(tǒng)實(shí)戰(zhàn)開發(fā)(Thinkphp6+Layui)相關(guān)課件
課件源碼
2021-09-27
ThinkPHP5商城計(jì)畫實(shí)戰(zhàn)影片教學(xué)課程源碼
ThinkPHP5商城計(jì)畫實(shí)戰(zhàn)影片教學(xué)課程源碼
課件源碼
2017-08-28
第49~58天教學(xué)源碼
第49~58天教學(xué)源碼
vip課件源碼
2018-02-03
直播課_Blog專案原始碼
直播課_Blog專案原始碼
課件源碼
2017-09-18