深入理解Yii2-0
分類:網頁製作查看:2896216下載:186
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

最新課程

看更多
  • 【web前端】Node.js快速入門
    【web前端】Node.js快速入門
    本課程專為初學者量身打造,旨在幫助學員快速掌握Node.js的基礎知識與核心技術。課程從Node.js的安裝與環境配置開始,逐步深入解析其非同步程式設計模型、模組系統以及事件驅動機制。透過豐富的實戰案例,學員將學會如何使用Node.js搭建高效、穩定的Web伺服器,處理HTTP請求與回應,以及進行檔案操作與資料庫互動。此外,課程也將介紹Node.js在前端開發的典型應用場景,協助學員快速提升實戰能力,輕鬆應對前端開發的挑戰。
  • 國外Web開發全端課程全集
    國外Web開發全端課程全集
    本課程是一套涵蓋HTML、CSS、JavaScript、Vue.js、React、Flutter以及行動APP開發的全面教學。從基礎的網頁製作到複雜的前後端交互,再到行動應用的實戰開發,課程內容豐富,實戰性強。學員將透過一系列實戰項目,深入了解並掌握各類開發技能,快速成長為全端開發工程師。無論是初學者或有一定經驗的開發者,都能從中受益。透過本課程的學習,你將具備獨立開發Web應用與行動應用的能力,為未來的職涯發展打下堅實的基礎。
  • Go語言實戰之 GraphQL
    Go語言實戰之 GraphQL
    本課程旨在幫助學習者掌握如何使用Go語言實現GraphQL服務。課程從GraphQL的基礎知識講起,深入剖析其資料查詢語言的特性與優勢,接著結合Go語言的特性,詳細講解如何建構GraphQL伺服器、處理請求、定義資料模式等。透過豐富的實戰案例,學習者將學習如何在實際專案中整合GraphQL,提升資料互動的靈活性和效率。課程適合有一定Go語言基礎的開發者,是建構高效能、現代化API的必備選擇。
  • 550W粉絲大佬手把手從零學JavaScript
    550W粉絲大佬手把手從零學JavaScript
    本課程,專為初學者打造,由Google大佬親自授課。課程從JavaScript的基礎知識講起,逐步深入,涵蓋語法、函數、物件、事件處理等內容。透過生動的案例和實戰練習,幫助學員快速掌握JavaScript的核心技能。大佬將親自解答學員疑惑,分享程式設計心得,讓學員在輕鬆愉快的氛圍中成長為JavaScript高手。無論你是程式設計小白,或是希望提陞技能的開發者,本課程都會是你學習JavaScript的最佳選擇。
  • python大神Mosh,零基礎小白6小時完全入門
    python大神Mosh,零基礎小白6小時完全入門
    本課程帶領你踏上程式之旅。從零基礎開始,這個為期 6 小時的課程將引導你掌握 Python 的基本原理和進階概念。 無論你是初學者還是希望提高技能的經驗豐富的程式設計師,Mosh 的深入講解和清晰的教學方法將使你快速掌握 Python。深入了解變數、資料類型、條件語句、循環、函數、物件和模組,並透過動手練習鞏固你的理解。 本課程是學習 Python 的理想選擇,能夠為各種職業領域做好準備。 Mosh 的專業知識和對教育的熱情將使你充滿信心,踏上成為熟練的 Python 開發人員的道路。