国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 后端開發(fā) php教程 【Yii】剛接觸Yii談一下對Yii框架的看法和感受 (Yii 1.1.x),該怎么處理

【Yii】剛接觸Yii談一下對Yii框架的看法和感受 (Yii 1.1.x),該怎么處理

Jun 13, 2016 am 11:59 AM
action nbsp php yii

【Yii】剛接觸Yii談一下對Yii框架的看法和感受 (Yii 1.1.x)

本帖最后由 default7 于 2014-06-10 00:57:13 編輯 之所以想到去弄Yii,因為看到很多招聘PHP都要求必須精通Yii框架。
首先的印象這個框架是中國人創(chuàng)始的,但是卻全都是英文的為主。這幾天看了一下Yii權威指南。
說一下自己的初步感受(Yii?1.x):




1)文件結構凌亂。
既然是框架,卻可以將action獨立出來/protected/controllers/post/CreateAction.php。這樣極容易讓action與controller混亂。




2)對視圖的控制欲太強烈,模板使用的是純PHP。難道你做程序員也非得去寫前端?
一個網(wǎng)站項目,讓美工切出了HTML?DIV?CSS模板之后,又讓PHP程序員再把里面的HTML標簽換成PHP標簽再搞一趟?
Yii的CHtml讓很多人特別贊不絕口,但是他們似乎忽略了一個最核心的關鍵,網(wǎng)站網(wǎng)頁有功能沒賣相根本就會很慘,你不要指望訪客都會像程序員那種只喜歡方方框框沒有一張圖全都是表格一樣、對得工工整整的頁面。


要注意:網(wǎng)站網(wǎng)頁他不像軟件,軟件可能幾年十幾年都是做的功能改進,但網(wǎng)頁,訪客喜歡新鮮感,界面視覺,所以需要不斷的改界面,改UI。

是定期修改,三天一小改,一個月一大改,三個月重新改。界面需要經(jīng)常改。這樣的情況下,如果直接使用html原型來做模板,美工做好DIV之后就可以直接用,根本都不需要程序插手??墒侨绻昧薈Html這樣高度耦合的視圖(模板)寫法,那么必須得多出一道工序,那就是還需要一個懂得Yii的程序員將美工已經(jīng)做好的DIV?HTML再轉成Yii視圖模板中的標簽,這樣不是浪費嗎?人力、時間、財力。與PHP的高效快速?背道而行?
實際上Yii的官網(wǎng)也是極其簡陋的,蘋果為什么會成功,賣相是關鍵,現(xiàn)在這個時代,UI界面真的太重要了。





3)感覺各個之間耦合度太高了,猶如一門新的語言。
Yii入門門檻比其他的框架高很多。各個之間都是高度耦合,都是些配置一樣的設置,越是耦合越緊密,配置文件越是分散各個角落其實維護起來成本更高、時間更長、維護效率更低(當然,他可能運行效率很快)。



Yii對我的吸引:
1)51job、智聯(lián)招聘上很多招PHP程序員的都要求需要精通Yii(其實看到那些要求我覺得很奇怪,描述上又要能夠獨立完成一整個項目又要精通Yii又要端精通DIV?CSS?UI,想讓別人一個人搞,有點不合實際,Yii適合大型項目,如果一個大型項目中又要讓程序員干Yii又要讓他去寫DIV這樣不可笑嗎?)

2)網(wǎng)上很多次方充滿著對Yii的贊美、推薦,比如知乎上、搜索引擎中搜索MVC框架排名看到各大轉載的文章、PHP?MVC框架排名上,Yii都排名得很前,且很多神贊。



以上是我對Yii初步接觸的一些感受,寫出來希望能夠一起探討,目的是能夠更快的掌握、領悟。by?default7#zbphp.com







------解決方案--------------------
歡迎了解?Yii2.0,你說的絕大多數(shù)問題在Yii?2.0?時代都有更好的實現(xiàn)了。
至于用PHP做模版,這個屬于仁者見仁智者見智的問題。學會模版引擎跟學會PHP差不了多少。2.0原生支持smarty和twig
至于耦合度的問題,只要你想,解耦根本不是問題,Yii提供的是一站式解決方案,一個字,就是快,之后你想替換組件,改模版,加緩存,隨你便。2.0原生支持多種解耦,比如DI。
至于像新語言的問題,因為Yii大量使用了DSL的模式。這個模式是微軟發(fā)明的。為什么用,因為好用。
至于混亂的問題,你沒有學到ActiveRecord,沒用用到ActiveForm。這些東西的彼此搭配才是現(xiàn)代PHP框架的核心啊。這些特色的點你都沒有說到,用好了效率灰?;页8?。Yii2.0新增了全新的查詢與表現(xiàn)分離的ActiveQuery以及更吊的多關系查詢,有空了解下。
除此之外的功能還有安全性設計,GII代碼生成器,開發(fā)者工具條,調試模式,Codeception調試器,F(xiàn)ixture數(shù)據(jù)定制器,Bootstrap擴展等等等等不勝枚舉的特性,學習曲線本身不是問題,這些特性你不用也沒關系,當原生PHP一樣用也好用,但是學習曲線是和收益成正比的,用過你就放不下了。
功夫要下到,你不會不代表它不能,這么多企業(yè)用Yii,難道他們的CTO傻?
------解決方案--------------------
你這是只看到y(tǒng)ii的缺點,沒看到y(tǒng)ii2的優(yōu)點。任何框架都會有缺點。
1、yii最主要的精華是OOP。
???????這個是yii框架的整個功能的所在,也是是公司招聘的主要原因
2、就像樓上所說的yii提供了各種便捷的功能,所以開發(fā)速度快。
3、文件結構凌亂
???????這個完全是按照個人習慣來組織,你可以這樣寫
protected
??????????actions
?????????????????post
?????????????????????????CreateAction.php
??????????????????????????ReadAction.php
???????????controllers
??????????????????PostController.php
4、至于表單問題
???????這個要看個人需要,如果做的表單頁面是中規(guī)中矩的,可以使用ActiveForm。
???????當然,你可以完全不用ActiveForm,自己寫html來實現(xiàn),ActiveForm只是給你提供了一種方便。
?????????????????????????
------解決方案--------------------
沒用過?Yii,也沒打算用。表示沒有就業(yè)壓力
據(jù)說?Yii2.0?這能工作于?php?5.4?及以上了
所以模板中的?
樓主對?Yii?模板的批評,也就是對?Smarty?的批評,也就是對所有使用模板引擎將業(yè)務邏輯與視圖分離的框架的批評,也就是對?MVC?這種設計模式的批評
姑且言之,姑妄聽之

如果要在模板中引入控制流,那么與其象?Smarty?自創(chuàng)一套模板語言,還真不如象?Yii?這樣直接使用?php?代碼
至少是學習難度下降了,何況學會了?php?,吃飯也總算有著落了

我倒是期望有這樣一個框架:他能將在?html?聲明為客戶端運行的php代碼翻譯成?js?代碼。從而免去學?php?還要學習?js?的煩惱
------解決方案--------------------


個人認為說的沒任何道理,你說的幾點只是框架提供的一個功能而已

1)文件結構凌亂:框架有強制你把action單獨寫出來么?完全可以寫到?Controller
2)對視圖的控制欲太強烈:和第一條一樣,沒人強制你用上這個功能,我自己做表單看情況是否啟用ActiveForm,哪個方便用哪個

事實證明,正規(guī)的公司都是分工明確不會讓美工去干前端人員切片的活,甚至讓美工或前端去套程序,只有那些比較坑的網(wǎng)建公司、非正規(guī)公司才會這樣去做,出一個人的薪水干幾個工種的工作


框架只是一個提升工作效率的工具,看你怎么去用,不是讓你把所有內置功能全部用上,不要被框架框?。?br>


------解決方案--------------------
至于Chtml做表單ActiveForm,可用可不用。但是個人覺得yii最優(yōu)秀的莫過于OOP和MVC,還有它的靈魂:隨用隨取,而并不是運行就把所有的類加載進來,這也是其效率所在了!也是很多企業(yè)要求YII的原因了。
------解決方案--------------------
用Yii完成了2個項目了,正在做第三個,這次這個項目相對比較大,功能也較多。
前兩個項目一次和別人合作,一次完全自己做的,自己做的一次是做一個票務系統(tǒng),因為整體界面要求不高,我就沒有找前端,全部自己寫了。
現(xiàn)在感覺Yii的整體設計用起來真是舒服,本身基于組件的框架使其具有極高的定制性,就像樓上所說的,有很多功能你覺得不好納尼完全可以不用,有很多替代方案,Yii只是給你多了一個選擇,如果你覺得好像沒什么替代方案只能說明對框架不夠熟悉,個人感覺Yii還是值得鉆研一下的
------解決方案--------------------
yii對初學者來說確實有點復雜,不過用時間久了就能體會到好處了,它確實是個極優(yōu)秀的框架。剛開始可能感覺不出來,等到后期維護的時候就能發(fā)覺,它真的是很方便,非常靈活,想怎么改就怎么改,哪怕需求變了,用它也可以快速完成。當然,前提是你得保證設計應該合理
------解決方案--------------------
1)文件結構凌亂。
既然是框架,卻可以將action獨立出來/protected/controllers/post/CreateAction.php。這樣極容易讓action與controller混亂。
本站聲明
本文內容由網(wǎng)友自發(fā)貢獻,版權歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權的內容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

什么是PHP,為什么它用于Web開發(fā)? 什么是PHP,為什么它用于Web開發(fā)? Jun 23, 2025 am 12:55 AM

PHPbecamepopularforwebdevelopmentduetoitseaseoflearning,seamlessintegrationwithHTML,widespreadhostingsupport,andalargeecosystemincludingframeworkslikeLaravelandCMSplatformslikeWordPress.Itexcelsinhandlingformsubmissions,managingusersessions,interacti

我如何了解最新的PHP開發(fā)和最佳實踐? 我如何了解最新的PHP開發(fā)和最佳實踐? Jun 23, 2025 am 12:56 AM

TostaycurrentwithPHPdevelopmentsandbestpractices,followkeynewssourceslikePHP.netandPHPWeekly,engagewithcommunitiesonforumsandconferences,keeptoolingupdatedandgraduallyadoptnewfeatures,andreadorcontributetoopensourceprojects.First,followreliablesource

如何設置PHP時區(qū)? 如何設置PHP時區(qū)? Jun 25, 2025 am 01:00 AM

tosetTherightTimeZoneInphp,restate_default_timezone_set()functionAtthestArtofyourscriptWithavalIdidentIdentifiersuchas'america/new_york'.1.usedate_default_default_timezone_set_set()

編寫清潔和可維護的PHP代碼的最佳實踐是什么? 編寫清潔和可維護的PHP代碼的最佳實踐是什么? Jun 24, 2025 am 12:53 AM

寫干凈、易維護的PHP代碼關鍵在于清晰命名、遵循標準、合理結構、善用注釋和可測試性。1.使用明確的變量、函數(shù)和類名,如$userData和calculateTotalPrice();2.遵循PSR-12標準統(tǒng)一代碼風格;3.按職責拆分代碼結構,使用MVC或Laravel式目錄組織;4.避免面條式代碼,將邏輯拆分為單一職責的小函數(shù);5.在關鍵處添加注釋并撰寫接口文檔,明確參數(shù)、返回值和異常;6.提高可測試性,采用依賴注入、減少全局狀態(tài)和靜態(tài)方法。這些做法提升代碼質量、協(xié)作效率和后期維護便利性。

如何使用PHP執(zhí)行SQL查詢? 如何使用PHP執(zhí)行SQL查詢? Jun 24, 2025 am 12:54 AM

Yes,youcanrunSQLqueriesusingPHP,andtheprocessinvolveschoosingadatabaseextension,connectingtothedatabase,executingqueriessafely,andclosingconnectionswhendone.Todothis,firstchoosebetweenMySQLiorPDO,withPDObeingmoreflexibleduetosupportingmultipledatabas

如何在PHP中使用頁面緩存? 如何在PHP中使用頁面緩存? Jun 24, 2025 am 12:50 AM

PHP頁面緩存可通過減少服務器負載和加快頁面加載速度提升網(wǎng)站性能。1.基本文件緩存通過生成靜態(tài)HTML文件并在有效期內提供服務,避免重復生成動態(tài)內容;2.啟用OPcache可將PHP腳本編譯為字節(jié)碼存儲在內存中,提升執(zhí)行效率;3.對帶參數(shù)的動態(tài)頁面,應根據(jù)URL參數(shù)分別緩存,并避免緩存用戶特定內容;4.可使用輕量級緩存庫如PHPFastCache簡化開發(fā)并支持多種存儲驅動。結合這些方法能有效優(yōu)化PHP項目的緩存策略。

如何快速測試PHP代碼片段? 如何快速測試PHP代碼片段? Jun 25, 2025 am 12:58 AM

toquicklytestaphpcodesnippet,useanonlinephpsandboxlike3v4l.orgorphpize.onlineforinstantantantExecutionWithOutSetup; runco??delocalocallocallocallocallocallocallywithpplibycreatinga.phpfileandexecutingitviateringitviatheterminal;

如何在PHP(&&,||,!,!,或XOR)中使用邏輯運算符? 如何在PHP(&&,||,!,!,或XOR)中使用邏輯運算符? Jun 23, 2025 am 12:56 AM

在PHP中,邏輯運算符用于組合或評估條件,主要的運算符包括&&、and、||、or、!和xor。1.&&與and的區(qū)別在于優(yōu)先級,&&優(yōu)先級高于賦值運算符,而and則低于賦值運算符,因此在結合賦值時行為不同;2.||和or也有類似的優(yōu)先級差異,||優(yōu)先于賦值,而or在賦值之后處理;3.!運算符用于取反布爾值,常用于檢查條件是否為假,并建議用括號包裹復雜表達式以確保正確應用;4.xor僅當兩個值中恰好有一個為true時返回true,適用于互斥條件判斷

See all articles