cakephp 是一個php的MVC framework,很像rails的感覺,感覺上就像是ROR的php版。不過因為php本身語法的關係,所以沒辦法像ruby這樣的簡潔,但是用來做prototype或是小系統倒是非常的方便。最近用cakephp做了兩個小系統,因為系統行為比較單純,對資料庫的操作也比較簡單,使用cakephp所提供的ActiveRecord就很方便,大部分的力氣都花在UI上。
不過cakephp的UI的部分不算好用。設計的觀念很好,但是用起來有點綁手綁腳,有些可以在直接在view裡做的資料轉換變成需要controller來配合才會好做。也許是我觀念還不好吧。總覺得應該要有更方便的做法讓view能更獨立,對controller提供的資料也能在呈現方式上做更靈活的改變,而不要淪為template,這樣比較像我覺的view該做的事。
cakephp 在效率上沒有想像的快。我用的是stable的1.1.x版,之前也看過和其他language的MVC framework比較,相較下cakephp的效率是略遜一籌。不過因為只是簡單的使用他提供的功能,沒特別注意資料庫存取的部分。可能會有重複讀取DB及讀取一些不必要資料的問題。我想rails的這種情況在cakphp應該也是會發生,rails如果呆呆的亂寫,可能會產生不必要的大量資料庫存取,大大影響整體效率。不過這不算是rails的問題,應該算是使用人的問題。
整體而言,cakephp 還滿方便好用的。如果在單純的中小型系統裡,用cakephp可以有很大的幫助。輕輕鬆鬆就可以做出具有良好架構的系統。加上cakephp的plug-in, helper也很容易擴充,雖然網路上的分享的擴充還不多,但自己寫也很容易。雖然不是很完美。但cakephp的確是使用php的朋友一個好選擇。