Yii是什麼
Yii是一個PHP框架,用於開發各種類型的Web應用。 Yii官方將其定義為高效能、基於組件的框架。
就個人的經驗而言,總結Yii具有以下特質:
Yii比較「潮」。
Yii開發團隊一直關注業界Web開發的最新技術,並注意吸收當下最受歡迎的技術。可以說,近年來Web開發中最潮的技術都可以在Yii身上或多或少的看到影子。例如,剛開始的時候Yii帶著明顯的Ruby on Rails風格;Yii2中剛剛實現的命名空間等PHP最新特性支援等。一個跟得上潮流和趨勢的框架,才具有吸引力和生命力,學習起來才有意思、有意義。
Yii比較「易」。
正如其名字的發音,Yii是一個比較易學、易用的框架。程式碼品質很高,有許多可以學習的地方。註解清晰、文件豐富閱讀程式碼難度不高。社群活躍,官方論壇有中文區,國內論壇人氣也還OK,知識取得容易。架構相對穩定,從Yii1.1到Yii2的變化來看,許多原來的約定和沈澱的經驗都還適用。
Yii比較「全」。
就Web開發而言,無論是哪種類型的應用、無論是哪個開發階段的常見問題,Yii都有成熟、高效、可靠的解決方案。對於典型的Web開發而言,這已經足夠了。例如,偽靜態化、國際化、RESTful等,Yii都有提供程式設計的框架。但是,從規模上來講,Yii還算不上一個大型框架。個人對其的評價是一個中型偏輕點的框架,對於絕大多數的應用開發而言,肯定是充分、夠用的了。
Yii比較「快」。
Yii官方把運作效率當作一個重要的特點來宣傳。從實際使用來看,在諸多PHP框架中,確實效率上具有一定優勢。但個人認為這點其實不是最重要的特質。對於框架的使用者,也就是開發人員來講,更重要的是開發效率。由於Yii架構合理,Web開發中常用的思路和模式都可以很順地套上使用。在Web開發中常遇到的一些細節上的問題,Yii也提供了許多現成解決方案,拿來就可以使用,非常有效率、方便。開發效率高,對於開發者、開發團隊而言,更為重要。
要感謝Yii開發團隊精益求精的不懈努力,為廣大Web開發者創造如此優秀的框架。本人自Yii1.1起就開始接觸並使用Yii了,由於工作和愛好關係,也接觸過一些框架了。總的說,至今對Yii很滿意, 最心儀的是兩點:學了Yii,就學到了許多當下最流行、最成熟的東西;開發起快,改進來快。
Yii2.0的亮點
Yii有兩個最主要的版本:Yii1.1和Yii2.0。 Yii1.1是舊的版本,在寫這本書時,最新版本號是1.1.15。 Yii1.1現在已經不再進行新的開發了,官方只是進行維護,更新安全漏洞等,不會再有新的功能特性的引入。而Yii2.0是在Yii1.1的基礎上完全推倒重寫的一個框架,吸收了許多當前最新的技術和開發中的主流約定, 是最新一代Web開發框架的代表。附錄1:Yii2.0 對比 Yii1.1 的重大改進 部分介紹了Yii2.0對比Yii1.1的重大改進。以下我們簡單介紹Yii2.0的一些比較突出的特點:
運用了PHP命名空間、Trait、 PSR標準 、Composer和Bower套件管理器, 等新技術新標準。
實現了 依賴注入和依賴注入容器 以及 服務定位器(Service Locator) 等新架構新模式。
Yii2.0格外重視安全性,採取一系列手段有效防止SQL注入、XSS攻擊、CSRF攻擊、cookie篡改等。
廣泛支援各類SQL和NOSQL資料庫,高效實現了Active Record等資料庫查詢、操作介面,提供資料庫遷移、複製、 讀寫分離等功能。
只需極少量的程式碼就可以實現完全符合標準的RESTful API。
支援各種粒度、介質的快取機制。
提供多種認證和授權手段基於cookie和基於令牌的認證,RBAC等權限控製手段,支援OpenID,OAuth1,OAuth2等。
支援Bootstrap,jQuery UI,提供了豐富的Widget掛件供使用。
完善的國際支持,提供符合 ICU標準 的時間、複數等格式化工具和訊息翻譯、視圖翻譯等功能。
除了支援Twig和Smarty 2個主流的PHP模版引擎外,開發者還可以自己寫擴充支援其他引擎。
為苦命碼農提供了 Yii調試工具條 和 Gii代碼生成器 以及 文件生成器 等高效開發工具。
整合了 Codeception 和 Faker,並與DB Migration結合,提供了一個fixture框架,方便測試和開發。
提供了一個簡單應用模板和進階應用模板,適用於不同的開發場景,都可以幫助開發者盡快建立自己的應用。
詳細的Yii2.0功能特性,請查看 官方說明 。
背景知識
請留意,雖然本書以Yii2為主要內容,但並未要求讀者俱備Yii1.1的開發經驗。雖然具有這些背景知識可以更快的掌握Yii2,但在講解過程中,本書會幫助沒有Yii1.1相關知識的讀者補充有關的概念。只要有了這些概念,讀者並不需要從頭開始學習Yii1.1,就可以直接上手Yii2了。
當然,Yii作為一個PHP框架,讀者朋友最好能夠了解一下PHP,並不需要多精通,只需要看得懂代碼,會寫簡單的代碼, 編程的時候大概知道要使用哪些函數,就基本足夠了,邊用邊學,也是一種學習方法。
同時,Yii還是一個物件導向的框架。這意味著在程式碼組織和問題解決的思維上,Yii都體現了物件導向的想法。要用Yii來開發,最好也要遵循這個想法。因此,讀者最好對物件導向程式設計有一定的了解。其實,看一個程式設計師水準的高低,不單是對於某種語言、某種開發框架的熟練程度。更重要的,是看其解決問題的想法和方法。其中一大類方法就是物件導向方法。從這點來看,雖然學習和使用Yii並不需要多高深的物件導向的方法。但身為過來人,還是希望各位讀者朋友可以有系統地、全面地學習物件導向的開發方法。特別是Web開發中常用的設計模式,本書也會在涉及時,進行專門講解。
如何閱讀本書
這不是一本「快速入門」、「一週精通」的書,本書的一個非常重要的目的和出發點是剖析Yii2.0的原理,使讀者既知其然, 又知其所以然,這就注定了不可能一蹴可幾。書中有大量的程式碼,需要剖析資料結構、追溯呼叫堆疊、追蹤程式碼流程。雖然我們力求生動、簡潔,但讀者朋友們還是要有「古佛青燈」的心理準備,不浮、不躁,潛心練好內功,紮實錘煉底子, 早日練成絕活。
在內容上,本書直指Yii2.0的本質,求精不求全,對於相關的PHP、HTTP等諸多知識最多在講到時點一點,淺償輒止, 沒能夠展開介紹。因此,對於涉及的關聯知識、背景知識,要充分利用搜尋引擎等工具,進行自學與補充。
在篇章結構上,本書大致上依照逐步深入的格局安排內容。同時,各部分的內容保持相對獨立, 盡量做到每個單獨頁面的內容,都可獨立成篇。因此,初次接觸Yii2.0的讀者朋友,建議循序漸進,依序閱讀。而有一定基礎的讀者則可以依照個人興趣與嗜好,自由選擇學習切入點,在遇到有疑問的知識點時, 再按圖索驒找相關的頁面。
在 Yii 基礎 部分,依序介紹了 屬性(Property) ,事件(Event) ,行為(Behavior) 等Yii中最基礎的知識, 是理解整個Yii框架的最基本的概念。
在 Yii 約定 部分,主要講解了Yii約定俗成的一些套路、設定,解決的是在開發者未作任何指定的情況下, Yii的默認行為方式的問題,用於加深對Yii實際使用的理解。這一部分主要包括 Yii應用的目錄結構和入口腳本 , 別名(Alias) , Yii的類別自動載入機制 , 環境和設定檔 , 配置項目(Configuration) 等內容。
在 Yii 模式 部分,剖析了Yii是如何實現一些當前Web開發中最主流和成熟的設計模式。學習這些設計模式,有助於深入理解Yii的機制,更難得的是提升讀者朋友本身的開發設計水準。這一部分主要講了 MVC , 依賴注入和依賴注入容器 , 服務定位器(Service Locator) 三種設計模式。
陳述:
本站所有資源都是由網友投搞發佈,或轉載各大下載站,請自行檢測軟件的完整性! 本站所有資源僅供學習與參攷,請勿用於商業用途,否則產生的一切後果將由您自己承擔! 如有侵權請聯繫我們删除下架,聯繫方式: admin@php.cn