溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Yii 框架的特性有哪些

發(fā)布時(shí)間:2020-12-11 15:16:49 來源:億速云 閱讀:277 作者:Leah 欄目:開發(fā)技術(shù)

Yii 框架的特性有哪些?針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

Yii是一個(gè)高性能的,適用于開發(fā)WEB2.0應(yīng)用的PHP框架。
Yii自帶了豐富的功能 ,包括MVC,DAO/ActiveRecord,I18N/L10N,緩存,身份驗(yàn)證和基于角色的訪問控制,腳手架,測試等,可顯著縮短開發(fā)時(shí)間

Yii快速

Yii 只加載您需要的功能。它具有強(qiáng)大的緩存支持。它明確的設(shè)計(jì)能與 AJAX 一起高效率的工作。

Yii安全

Yii 的標(biāo)準(zhǔn)是安全的。它包括了輸入驗(yàn)證,輸出過濾,SQL 注入和跨站點(diǎn)腳本的預(yù)防。

專業(yè)

Yii 可幫助您開發(fā)清潔和可重用的代碼。它遵循了 MVC 模式,確保了清晰分離邏輯層和表示層。
 
Yii Framework是一個(gè)基于組件、用于開發(fā)大型 Web 應(yīng)用的高性能 PHP 框架。Yii提供了今日Web 2.0應(yīng)用開發(fā)所需要的幾乎一切功能。Yii是最有效率的PHP框架之一。Yii是創(chuàng)始人薛強(qiáng)的心血結(jié)晶,于2008年1月1日開始開發(fā)。

Yii是一個(gè)基于組件的高性能PHP框架,用于開發(fā)大型Web應(yīng)用。Yii采用嚴(yán)格的OOP編寫,并有著完善的庫引用以及全面的教程。從 MVC,DAO/ActiveRecord,widgets,caching,等級式RBAC,Web服務(wù),到主題化,I18N和L10N,Yii提供了今日Web 2.0應(yīng)用開發(fā)所需要的幾乎一切功能。事實(shí)上,Yii是最有效率的PHP框架之一。
Yii是一個(gè)高性能的PHP5的web應(yīng)用程序開發(fā)框架。通過一個(gè)簡單的命令行工具 yiic 可以快速創(chuàng)建一個(gè)web應(yīng)用程序的代碼框架,開發(fā)者可以在生成的代碼框架基礎(chǔ)上添加業(yè)務(wù)邏輯,以快速完成應(yīng)用程序的開發(fā)。

Yii優(yōu)點(diǎn)

Yii容易學(xué)習(xí)和使用。你只需要知道PHP和面向?qū)ο缶幊?,便可以很快上手,而不必事先去學(xué)習(xí)一種新的架構(gòu)或者模板語言。
用Yii的開發(fā)速度非常之快,除框架本身之外,需要為應(yīng)用所寫的編碼極少。事實(shí)上這是最高效的開發(fā)框架之一。
Yii 具有高度的可重用性和可擴(kuò)展性,是純粹的面向?qū)ο蟮?。Yii中的一切都是獨(dú)立的可被配置,可重用,可擴(kuò)展的組件。更重要的是Yii有著越來越多的擴(kuò)展庫。主要由使用者貢獻(xiàn)出的組件組成,這可能有助于大大減少您的開發(fā)時(shí)間。
Yii 有著豐富的功能. 從 MVC, DAO/ActiveRecord, 到 主題化, 國際化 和本地化, Yii 提供了幾乎所有今天的Web 2.0應(yīng)用程序開發(fā)所需的功能。
在Yii參考手冊是Yii完備的文檔,有著你學(xué)習(xí)和掌握它所需要的任何信息。
Yii一開始就精心設(shè)計(jì),以適應(yīng)復(fù)雜的WEB應(yīng)用開發(fā)。他不是一些項(xiàng)目的副產(chǎn)品或者第三方集成。而是融合了作者豐富的 Web 應(yīng)用開發(fā)經(jīng)驗(yàn)和其它熱門 Web 框架和應(yīng)用的優(yōu)秀思想的結(jié)晶。
最后,但并非不重要,Yii是免費(fèi)的,Yii遵循最新的BSD許可。它確保了它的第三方開發(fā)也循序和BSD相兼容的許可。這意味著無論從法律上還是財(cái)務(wù)上來說,您都可以自由的使用yii來開發(fā)任何一個(gè)開源的或者私有的應(yīng)用。

特性

Yii幾乎擁有了當(dāng)今Web 2.0應(yīng)用發(fā)展的全部特性。下面是這些特性的一個(gè)簡短的清單。
模型-視圖-控制器(MVC)設(shè)計(jì)模式:Yii在WEB編程中采用這一成熟的技術(shù)從而可以更好的將邏輯層和表現(xiàn)層分開。
數(shù)據(jù)庫訪問對象(DAO)和Active Record:Yii允許開發(fā)者模型數(shù)據(jù)庫中的數(shù)據(jù)對象,從而減少他們在寫很長和重復(fù)的SQL語句上的精力。
與jQuery整合:作為最流行的JavaScript框架之一,jQuery可以編寫高效而靈活的JavaScript接口。
表單輸入和驗(yàn)證:YII使得收集表單輸入非常容易和安全。 Yii擁有一套確保數(shù)據(jù)的有效性的驗(yàn)證器,它也有輔助方法和部件,顯示驗(yàn)證失敗時(shí)的錯(cuò)誤。
Web 2.0部件:由jQuery的支持,YII配備了一套Web 2.0的部件,如自動完成輸入字段,TreeView等等。
身份驗(yàn)證和授權(quán):Yii具有內(nèi)置的身份驗(yàn)證支持。它也支持通過分層的基于角色的訪問控制(RBAC)的授權(quán)。
主題:它能夠瞬間改變一個(gè)Yii應(yīng)用的視圖。
Web服務(wù):Yii支持自動生成復(fù)雜的WSDL服務(wù)規(guī)范和管理Web服務(wù)請求處理。
國際化(I18N)和本地化(L10N):Yii支持消息轉(zhuǎn)換,日期和時(shí)間格式,數(shù)字格式和界面本地化。
分層緩存方案:Yii支持?jǐn)?shù)據(jù)緩存,頁面緩存,片段緩存和動態(tài)內(nèi)容。緩存的存儲介質(zhì),可以輕松地更改而不觸及應(yīng)用程序代碼。
錯(cuò)誤處理和日志記錄:錯(cuò)誤的處理很好的呈現(xiàn)出來,日志信息可以分類,過濾并分配到不同的位置。
安全:Yii配備了許多安全的措施,以幫助安全的Web應(yīng)用程序,以防止網(wǎng)絡(luò)攻擊。這些措施包括跨站點(diǎn)腳本(XSS)預(yù)防,跨站點(diǎn)請求偽造(CSRF)預(yù)防,Cookie篡改預(yù)防等。
符合XHTML:Yii的組件和命令行工具生成的代碼符合XHTML標(biāo)準(zhǔn)。
自動代碼生成:Yii提供了可以自動生成的代碼的工具,根據(jù)你的需要,例如生成一個(gè)程序骨架,CRUD應(yīng)用等等。
完全面向?qū)ο螅篩ii框架堅(jiān)持嚴(yán)格的面向?qū)ο缶幊谭妒?。它沒有定義任何全局函數(shù)或變量。而且,它定義的類層次結(jié)構(gòu)允許最大的可重用性和定制。
友好的使用第三方代碼:Yii精心設(shè)計(jì)讓它第三方代碼非常好的工作。例如,你可以在你的Yii應(yīng)用程序中使用PEAR或Zend Framework的代碼。
詳細(xì)的文檔:每一個(gè)單一的方法或?qū)傩远挤浅G宄挠涗浿?。同時(shí)提供了一個(gè)全面的教程和一些新手教程。
擴(kuò)展庫:Yii提供了一個(gè)組成用戶提供組件的一個(gè)擴(kuò)展庫,這使得上述功能列表是永無止境的。

關(guān)于Yii

Yii是一個(gè)基于組件、用于開發(fā)大型 Web 應(yīng)用的高性能 PHP 框架。在WEB開發(fā)中Yii可以最大限度的實(shí)現(xiàn)代碼重用,極大的提高開發(fā)的速度。名字Yii(讀音是Yee or [ji:],應(yīng)該就是“易”的讀音 )代表的是容易(easy),高效(efficient)和可擴(kuò)展(extensible)
環(huán)境需求
要運(yùn)行一個(gè) Yii 驅(qū)動的 Web 應(yīng)用,你需要有一個(gè)支持 PHP 5.1.0 或以上版本的 Web 服務(wù)器。
對于打算使用 Yii 的開發(fā)者來說,懂得面向?qū)ο缶幊蹋∣OP)會非常有幫助。因?yàn)?Yii 是一個(gè)純 OOP 的框架。
適用范圍
Yii 是一個(gè)通用的 Web 編程框架,可以用于開發(fā)幾乎所有的 Web 應(yīng)用。由于它是輕量級的且具備了成熟的緩存解決方案,它特別適用于開發(fā)高流量的應(yīng)用,例如門戶,論壇,內(nèi)容管理系統(tǒng)(CMS),電子商務(wù)系統(tǒng)等等。
與同類產(chǎn)品比較
和多數(shù)PHP框架類似,Yii 是一個(gè) MVC 的框架。
Yii 以其優(yōu)異的性能,豐富的功能和清晰的文檔勝出其他框架。Yii 從一開始就仔細(xì)設(shè)計(jì)以適合嚴(yán)謹(jǐn)?shù)?Web 應(yīng)用開發(fā)。它既不是一個(gè)其他項(xiàng)目的衍生品,也不是一個(gè)第三方工作的組合。 它是作者豐富的 Web 應(yīng)用開發(fā)經(jīng)驗(yàn)和對大多數(shù)流行的 Web 編程框架與應(yīng)用的研究與思考的成果。

性能

yii性能
Yii是一個(gè)高性能的框架,以下的圖表展示了與其他流行的PHP框架比較下Yii的高效率。在這個(gè)圖表中, RPS代表“每秒請求”,描述了此框架每秒執(zhí)行多少個(gè)請求。這個(gè)數(shù)字越大,此框架的性能越高,我們可以看到,在這個(gè)比較中 Yii 勝過其他框架。The performance advantage of Yii is especially significant when the widely used APC extension is enabled.
Performance alone is not the whole story (otherwise we should all use plain HTML or PHP). With such superior performance, Yii still provides a very rich feature setwhich can greatly improve your development efficiency.
為什么Yii如此之快
Yii如此快速是因?yàn)樗鼜V泛地使用lazy loading技術(shù)。比如, 直到第一次使用到這個(gè)類,才會包含進(jìn)來;直到對象第一次訪問,才會創(chuàng)造這個(gè)對象。Other frameworks suffer from the performance hit because they would enable a functionality (e.g. DB connection, user session) no matter it is used or not during a request.
標(biāo)準(zhǔn)設(shè)置
下面我們解釋怎樣設(shè)計(jì)基準(zhǔn)應(yīng)用并且得到上面的RPS結(jié)果.
基準(zhǔn)請求
Since our goal is to compare the minimal overhead of each framework, the benchmark application for each framework should be the simplest one. We choose to display a "Hello World" text string by placing an echo statement in the default action of each application. Any additional framework features (e.g. session) are disabled to ensure fairness of the comparison. To obtain a copy of the benchmark applications, please check out the phpmark project.
為什么用“Hello World”
我們做“hello world”的測試主要是為了達(dá)到我們的目標(biāo),如:找出每個(gè)框架地最小代價(jià)。很多人抱怨說應(yīng)用程序“hello world”很沒意義,因?yàn)樵谡鎸?shí)世界的應(yīng)用程序經(jīng)常需要去涉及更復(fù)雜的任務(wù),比如數(shù)據(jù)庫查詢。這是不對的。實(shí)際上,尤其是在一些大規(guī)模的web2.0應(yīng)用程序中,我們經(jīng)常遇到的情況通常是相當(dāng)?shù)亟咏癶ello world”。例如:應(yīng)用程序要響應(yīng)ajax請求返回當(dāng)前服務(wù)器的時(shí)間。頁面有大部分內(nèi)容在緩存,應(yīng)用程序只需要抓取緩存的內(nèi)容并顯示之。
另一個(gè)用“hello world”的原因是當(dāng)引用更復(fù)雜(如:數(shù)據(jù)庫查詢)的特征時(shí),對照的清晰將很難保證。例如:框架可以在數(shù)據(jù)庫查詢執(zhí)行得非常有效率,但缺少緩存方案。當(dāng)另一個(gè)框架在數(shù)據(jù)庫查詢上稍慢,卻有高級的緩存特征來緩和系統(tǒng)損耗??偠灾邪颂嗟囊蛩貋磉M(jìn)行清晰的對比。
標(biāo)準(zhǔn)工具和環(huán)境
用ApacheBench工具的指令“ab –t 30 -c 10 URL”來獲取RPS編號(如:在并發(fā)級數(shù)10運(yùn)行test 30秒)。為了獲得每個(gè)框架的編號,我們先停止再啟動Apache WEB服務(wù)器來避免干擾。還要運(yùn)行測試程序幾次來“預(yù)熱”測試環(huán)境。在phpmark project中,有個(gè)叫benchmark. sh的shell script使基準(zhǔn)程序自動化。

Credits

Yii 的很多想法來自其他著名 Web 編程框架和應(yīng)用程序。下面是一個(gè)簡短的清單。
Prado:這是 Yii 的主要思想來源。Yii 采用了基于組件和事件驅(qū)動編程模式,數(shù)據(jù)庫抽象層,模塊化的應(yīng)用架構(gòu),國際化和本地化,和許多它的其他特點(diǎn)和功能。
Ruby on Rails:Yii 繼承它的配置的思想。還引用它的 Active Record的 ORM設(shè)計(jì)模式。
jQuery:這是集成在 Yii 為基礎(chǔ)的 JavaScript 框架。
Symfony:Yii 引用它的過濾設(shè)計(jì)和插件架構(gòu)。
Joomla:Yii 引用其模塊化設(shè)計(jì)和信息翻譯方案。

關(guān)于Yii 框架的特性有哪些問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI