鍍金池/ 問答/PHP/ Yii GridView 數(shù)據(jù)網(wǎng)格作用,以及其優(yōu)勢在哪里?

Yii GridView 數(shù)據(jù)網(wǎng)格作用,以及其優(yōu)勢在哪里?

官方文檔描述

數(shù)據(jù)網(wǎng)格或者說 GridView 小部件是Yii中最強(qiáng)大的部件之一。如果你需要快速建立系統(tǒng)的管理后臺, GridView 非常有用。它從數(shù)據(jù)提供者 data provider 中取得數(shù)據(jù)并使用 columns 屬性的一組列配置,在一個表格中渲染每一行數(shù)據(jù)。

文檔地址

這個東西確實(shí)可以在實(shí)際開發(fā)中省去大量的時間,例如:在傳統(tǒng)(非前后分離)后臺項(xiàng)目中渲染表格,比起使用 html 然后再去 foreach 渲染。省去了不少時間。
我想問,是否建議使用這類組件,以及他的優(yōu)勢,或者他的局限性,怎么正確的看待這用這種組件。謝謝大佬!

回答
編輯回答
凝雅

我來說一下看法吧。

首先Yii框架的前端樣式都是基于bootstrap的UI框架的,而且Yii本身有一套非常強(qiáng)大的css和js管理及注入機(jī)制。

以上是前提。

然后,我來說一下傳統(tǒng)的MVC機(jī)制,傳統(tǒng)的V層基本上就是直接寫HTML,或者用個Smarty模板啥的來封裝一層,讓PHP的變量賦值盡量像是HTML,目的就是讓前端來寫PHP程序并且感受不到太多不適感,但是實(shí)際上前端依舊還要學(xué)習(xí)模板引擎的使用,后端也需要學(xué),其實(shí)在一定程度上增加了前后端的工作量。

再來看Yii框架的設(shè)計(jì)方式,Yii框架雖然來說是有View層,但是對于Yii框架來說,View層也是PHP程序來生成的,這樣的好處是對于后端來說,基本上類似于使用組件一樣,想要什么東西,以后端代碼的形式進(jìn)行調(diào)用即可,不關(guān)心前端代碼,對于PHP本身來說,就會有一種工程化的概念。當(dāng)然對于后臺管理來說,可能內(nèi)置的這一套View層?xùn)|西不是特別的美觀,但是對于后臺管理來說,基本上也不需要要求太多美觀上的東西。當(dāng)然如果想改樣式,也是有辦法的,此處不做討論。

而封裝好的View層,是以邏輯層面來出發(fā),也就是以我們?nèi)藶榈乃枷雭硖幚韱栴},而不需要關(guān)注細(xì)節(jié)是怎么處理這個問題的,這樣子從邏輯上來看,更加清晰和友好,開發(fā)速度自然也就非??欤瑤淼暮锰庯@而易見。

而我意識到這個東西是我在開發(fā)android的時候,android的結(jié)構(gòu)封裝其實(shí)和這個非常相似,android底層封裝了LinearLayout,RelativeLayout等基礎(chǔ)視圖類,進(jìn)行界面編寫的時候,可以直接調(diào)用視圖類或者是按照規(guī)范編寫xml進(jìn)行布局,而實(shí)際上xml其實(shí)類似于配置文件,最后生成的還是視圖類調(diào)用。經(jīng)過類比,我發(fā)現(xiàn)Yii這種實(shí)現(xiàn),貌似借鑒了這種思想,特別有意思。

整體來說是我的一些看法,說感觸的話就是多接觸一些不同語言開發(fā)或者不同語言的不同項(xiàng)目開發(fā),能感受到一些不同的開發(fā)思想,特別有意思。

2018年4月18日 14:31