YII 架構的優點有哪些?
來源:互聯網
上載者:User
回複內容:
YII 架構的優點有哪些? - 周健的回答
沒錯,這條回答就是針對你的回答的,無數次的at錯人後,我決定取消at了orz..
蹲坑的時候看到這條回答和一系列問題,我已經迫不及待提上褲子來回(反)答(駁)你的一系列問題了。
首先,你用了若干個絕對,我只能說佩服你的自信,“TP開發效率絕對高於Yii”、“TP必定更適合國人思維”、“TP附加價值絕對高於Yii”,你的這一系列絕對,對我來說就是不成立的,即便100個人裡99個人贊同你的觀點,而我一個人反駁,“絕對”二字就不成立!
存在即有理,所以對於TP架構好壞我不做評論,不過曾經在知乎看到一位朋友對TP的評價,雖然露骨,但是我覺得在理--“TP談不上設計,只能說是一堆工具的集合”,即便如此,我也不否認TP,畢竟在國內的佔有率在那,就好像很多人噴PHP,還是那句話,
存在即合理。
好,下面針對你的問題我一一回答
--------------分割線-----------
1、首先,提出這個問題,說明你對MVC模式的理解就有偏差,MVC只是提出了資料-視圖-商務邏輯的分離,可並沒有說視圖裡就不能有PHP代碼,只要視圖裡的PHP是在做”表現“的事情,他就不背離MVC。
其次,即便如你所說,視圖裡就千萬別出現PHP代碼,那麼Yii一樣可以引入Smarty等模版引擎,只不過我同樣認為沒必要,在很多情境下,引入Smarty,後端和前端開發人員都需要重新學習一套語言,而如果直接用PHP做模版,前端開發人員只需要簡單的學習文法就可以進行套頁面的工作,即便拋開效率不談,如果前端人員本來就既不會php也不會smarty,那麼他簡單的學習一些php文法,成本不見得比學smarty高。 所以,目前在我公司(前後端各20+人員規模)就是直接用Yii,並且使用php做模版;
2、widget,顯然他不是萬能,但你又能舉出一個例子說明什麼東西是萬能的嗎?(錢?笑~),舉一個適用的情境: 網站裡很多頁面都出現的搜尋方塊,用widget來做就很方便
至於說傳JS的問題,用了5個月還不知道Yii的ClientScript怎麼用,也說明用的不是太深入;
3、gii的設計初衷就不是替你產生商務邏輯的,gii是針對Web開發過程中對錶的常規CRUD操作產生列表、表單及刪除動作,不說其他,我所做的所有項目後台都是基於gii產生,開發效率提升說巨大也不為過;
至於樣式,既然你不需要,難道你不知道可以自己定製一套Gii的模版嗎?
4、關於這個作者在海外還是在國內,這個問題我想就沒有回答的必要了,這與Yii本身無關。
綜上,回答僅針對答主的問題,不吹不黑,要吐槽起yii我大概也能說800字,只不過答主的問題確實不是yii應該被黑的點,只不過看到答主口口聲聲的代表國人說了若干“絕對“忍不住提出反對意見加入一篇我的博文yiiframework中一種更加簡單構造局部頁面的方法 在Yii Framework下打造C#的Html.RenderAction
團隊使用Yii 接近兩年時間了。
我們從NET遷移過來使用php重新開發,當時考慮的相當多的架構,最後決定選用Yii
1、Yii 架構的代碼風格上於net比較接近,方便我們團隊原有人員可以很方便的閱讀php代碼,上手快。
2、Yii 的架構對擴充支援相當高,很方便擴充,我們慢慢的自己擴充了很多組件。最近甚至修改了程式入口,讓我們可以更加在架構內操控程式。
3、很重要的效能,Yii 的效能相對優秀,而且屬於輕量級架構。spl_autoload_register 預註冊,按需載入檔案等對效能都有很大提高。
4、modules 設計是一個很優秀的東西,他理論上可以無限嵌套,當然不建議嵌套超過三層。雖然我們嵌套了兩層。
4、widget 視窗小組件的應用,可以更加方便的構造通用模組。當然我們還有更加方便構造通用模組的方法,後邊說。
5、其實整合的model,以及CActiveRecord模式 包含的驗證機制,都是很好的東西,但是約束性也相對強一些。
6、不得不說的緩衝機制,Yii架構封裝了各種緩衝方式,讓你只需要調用統一的方法就可以在不同的緩衝中切換。
通過內聯方式將指定action的視圖載入到當前頁面 · Issue #2579 · yiisoft/yii · GitHub
我寫的一個更方便的構造通用介面的方法。不太完美,還在完善。 我討厭他的activeform和jquery綁定如此之深,用吧,為jquery所累,不用吧,以後接手的人肯定會罵我!還有就是越來越zend化了
其他的都是喜歡的 太複雜,把本來簡潔的php,弄得那麼複雜,如果不深入學習,很難用我用過ci,tp,zf和yii,感覺tp是偽oop的架構,沒有任何設計模式可言,特別是把smart這類模板引擎嵌入到架構中更是一大敗筆,唯一的優點就是簡單易學,個人感覺yii比tp高出不止2個等級。Yii有三個群,
兩個滿了,121116851 Yii中國 67572979 Yii
一個快滿了。127319423 Yiibook討論群組
這裡馬上就會有很多人來報道的。。。
每天發碼中
Yii的優點我總結一句話是:Yii是PHP快速開發的最佳實務。具體參考:http://www.yiiframework.com/doc/guide/1.1/zh_cn/changes
和http://www.yiiframework.com/features/
要正真體會到,需要去用。
6.20補充:
目前國內在用的知名公司有盛大,多玩,飯否,小紅傘等。參考:http://www.isyii.com/sites
基於YII的開源項目有:http://www.isyii.com/open
我寫的基於sina開放平台的yii擴充: http://yii4sae.sinaapp.com
Yii4sae是Yii架構部署到新浪開放平台(SAE)的最佳實務。不用修改Yii源架構代碼也能將Yii部署到SAE,Yii的架構擴充性可見一斑。
2016.6.3補充:
目前Yii已經發展到2.0,Yii使用的公司已經是當初幾十倍以上. Yii最大的優點就是快速,敏捷,不拖遝,給程式員飛翔的能力。當然請不要做對比,不同的人適合/喜歡不同的東西,如果你沒用過Yii可以試試,至少我用了快2年了,感覺不錯。 YII確實很不錯,如果說過於依賴架構會導致不能真正懂得編程的話,我是反對的。
起碼YII對編程的理解和提高都是有協助的,如果你沒有研究過YII就在這說YII不行的話,還是建議你去看看YII吧! 以前學PHP的時候檔案都是亂放的,控制器,模型的概念也不是很清楚。
用了一段時候yii,可以養成很好的習慣。
組件非常強大,很多東西已經寫好了。可以拿來直接用。還是說缺點吧。
yii migrate這個坑略大,不過估計沒什麼人實際使用的。
文檔略簡潔。