歡迎來到 常識詞典網(wǎng) , 一個專業(yè)的常識知識學(xué)習(xí)網(wǎng)站!
[ Ctrl + D 鍵 ]收藏本站
答案 1:
團(tuán)隊(duì)使用Yii8個月,個人之前使用過CodeIgniter, Ka-ana, QCodo, Symfony,Yii比較突出的優(yōu)勢是:>性能Yii可能市場上主流PHP框架里面相對性能最好的一個,Yii對于類裝載的機(jī)制充分利用了PHP5.3的優(yōu)勢,每一個類只有當(dāng)?shù)谝淮伪挥玫讲疟惠d入,并不是所有框架都“按需載入”從而獲得性能上的優(yōu)勢;
widgetwidget機(jī)制為開發(fā)提供了自然靈活的代碼封裝和重用,比如網(wǎng)站有一個Top10列表是一個單獨(dú)的內(nèi)容單元,需要在不同的頁面區(qū)域顯示這個列表,在Yii里面的實(shí)現(xiàn)很自然清晰:In Top10Widget.p-p (Controller)Class Top10Widget extends CWidget { public $list = array(); public function init() { // populate $t-is- > list } public function run() { $t-is- > render("top10"); }}In top10.p-p (View) < ?p-p foreac-($t-is- > list as $item): ? > ....... // outputs -tml -rkup < ?p-p endforeac-;? > 在需要的地方調(diào)用這個Widget... < ?p-p $t-is- > widget("Top10Widget"); ? > ...其他的框架也有類似的機(jī)制,但概念上沒有這么自然
恰到好處的Model層設(shè)計(jì)Yii的Model相對Symfony這樣的框架來說被設(shè)計(jì)得比較薄,沒有使用ORM,保證了框架整體的小巧,model層調(diào)用產(chǎn)生的over-ead比如Symfony這樣的框架要小,Yii使用直接的DAO和Active Record來和數(shù)據(jù)層交互,感覺更加實(shí)用,沒有特別的學(xué)習(xí)曲線,重量級的ORM比如在Qcodo和Symfony框架里,有比較陡的學(xué)習(xí)曲線
平滑擴(kuò)展要擴(kuò)展Yii或者引入第三方庫比較容易,YII里的擴(kuò)展沒有給開發(fā)人員預(yù)設(shè)很多約定,有一些框架若需擴(kuò)展就需要遵守“框架”本身的一些個約定,而YII的擴(kuò)展基本就是純p-p的擴(kuò)展方式,本質(zhì)上就是include一下,無需太多配置,組建(component)機(jī)制為擴(kuò)展提供了很好的全局支持,一個擴(kuò)展可以作為一個組建被引入到需要的地方,當(dāng)然這不是唯一的方式
功能設(shè)計(jì)相對更加輕量的p-p框架如CodeIgniter,Yii所提供的一般性功能的設(shè)計(jì)水準(zhǔn)比較高,考慮比較全面,工作在CodeIgniter上,在某些情況下你可能碰到框架過于簡單,對部分功能缺少深入設(shè)計(jì),Yii在這些功能的設(shè)計(jì)上都有值得借鑒的地方:
Url Dispatc-er
I18N
Cac-ing
Filtering
有中文支持不全面,但也算一個優(yōu)點(diǎn)。
下一篇:電信運(yùn)營商-運(yùn)營 下一篇 【方向鍵 ( → )下一篇】
上一篇:如何開發(fā)新浪微博的機(jī)器人? 上一篇 【方向鍵 ( ← )上一篇】
快搜