趁專案的小間隙,慢慢把1.x的架構轉換為2.x。
目前使用上看到的幾個大改變:
- PHP 5.4+ namespace支援 - 對於Class的引入使用可以更精確,減少多餘的載入
- composer - 幾乎大多的extension現在都能以composer的方式掛進來了,但缺點是若使用虛擬主機的話,就沒辦法ssh下composer指令,變成還是要整理一套完整程式才行。
- ActiveRecord查詢方式改變 - 1.x常用的criteria、findByAttributes 在2.x消失了,但取而代之的ActiveQuery及find功能變得更彈性
- Asset檔的管理 - 2.x中加入了AssetBundle Class,可以將css、js等靜態資源檔透過Class的概念定義,還可以定義相依性、根路徑等,無需像以前一樣在layout中穿插。不過這功能個人還沒有摸透,用起來還在綁手綁腳的階段
其實大體上Yii 2.x的架構、控件命名、參數命名、設定檔等,與1.x相比沒有太大的差異,但目前個人覺得2.x的文件、範例、討論現階段還沒有很完整,常常會在小地方卡關,直接看source code才找到方法。
寫個幾天下來,會覺得越來越像在寫.NET之類的程式,大功能都以widget、helper、behavior等方式封裝好,透過設定的方式來改變結果。
好處是越來越多功能都可以透過少少的程式來達成,壞處可能就是出現特例情況時修改的彈性比較低,但目前還沒有真正遇到解不了的難題就是。
接下來就加減紀錄一些使用的小心得。
Yii 1.x 的criteria、findByAttributes這兩個東西真的不好用,又難以理解
回覆刪除快來ZF2啦!