May 29,2006
Symfony 使用感
Symfony 是一個 PHP 的 Web Framework
大家都說他有受到 Rails 的影響
所以這幾天我有特別去做 survey
結論是,講這話的人根本就是在放屁....
Symfony 根本就不是 Rails 的 clone 版
大家都說他有受到 Rails 的影響
所以這幾天我有特別去做 survey
結論是,講這話的人根本就是在放屁....
Symfony 根本就不是 Rails 的 clone 版
當你開始寫 symfony code 的時候
雖然裡面也有很多
這種跟 Rails 同名的 function
但你會發現濃濃 Java 味
可能常常會發現
這種 JAVA Style 的 code
並且,裡面有大量的 YAML configuration
這跟 Rails 標榜的 convention over configuration 根本就是相對的
所以,我敢斷定,這 symfony 絕對不是以 Rails 為主要靈感來源的 Framework
兩者的比較
我說說看我對 symfony 的認識好了,雖然我對他了解真的不深
雖然年紀輕輕,但Symfony是一個相當完整的Framework
而且我還覺得他某種程度上比 Rails 完整
MVC,ORM,Cache,i18n,AJAX....等等所有需要的功能都有實做
並且因為使用了大量的 Configuration ,他甚至可以做到 Rails 很難做的彈性
像是連結 multi database 之類的功能
並且,他的 Documention 是世界級的,Documention的完整度可以媲美 Apache
並且他的ORM是採用 Propel
Propel採用 XML 做到 ORM,實做也相當完整
可說是重量級的軟體
我可以這樣講,Symfony是個Enterprice Framework
他在 i18n上面勝過 Rails ,Documention 也是不亞於 Rails
至於缺點呢?
第一個:configuration file 太多,對 Rails 使用者來說,相當不能接受(但是JAVA使用者或許很喜歡?)
第二點:configuration 很多就算了,裡面有 XML ,YAML,INI並行,這容易造成混淆
第三點:configuration格式很複雜就算了,同樣一個 DB account 的 configuration 居然要同時寫在 Propel.ini ,database.yml 這兩個file ,這根本就是不合理
第四點:Documention 是世界級的完整,代表Programmer 需要看相當多的Documention.....
第五點:Rails 做一步,Symfony必須做三步,development time還是有差
小小的結論
我不認為 Symfony 在開發中小型 Application 上面,會有贏過Rails 的優勢
至於大型 Application上面呢?既然要寫大型Application,那為什麼要用 PHP 寫大型 Application XD
雖然裡面也有很多
link_to('List of posts', 'post/list')
這種跟 Rails 同名的 function
但你會發現濃濃 Java 味
可能常常會發現
$c->addAscendingOrderByColumn(CommentPeer::CREATED_AT);
這種 JAVA Style 的 code
並且,裡面有大量的 YAML configuration
這跟 Rails 標榜的 convention over configuration 根本就是相對的
所以,我敢斷定,這 symfony 絕對不是以 Rails 為主要靈感來源的 Framework
兩者的比較
我說說看我對 symfony 的認識好了,雖然我對他了解真的不深
雖然年紀輕輕,但Symfony是一個相當完整的Framework
而且我還覺得他某種程度上比 Rails 完整
MVC,ORM,Cache,i18n,AJAX....等等所有需要的功能都有實做
並且因為使用了大量的 Configuration ,他甚至可以做到 Rails 很難做的彈性
像是連結 multi database 之類的功能
並且,他的 Documention 是世界級的,Documention的完整度可以媲美 Apache
並且他的ORM是採用 Propel
Propel採用 XML 做到 ORM,實做也相當完整
可說是重量級的軟體
我可以這樣講,Symfony是個Enterprice Framework
他在 i18n上面勝過 Rails ,Documention 也是不亞於 Rails
至於缺點呢?
第一個:configuration file 太多,對 Rails 使用者來說,相當不能接受(但是JAVA使用者或許很喜歡?)
第二點:configuration 很多就算了,裡面有 XML ,YAML,INI並行,這容易造成混淆
第三點:configuration格式很複雜就算了,同樣一個 DB account 的 configuration 居然要同時寫在 Propel.ini ,database.yml 這兩個file ,這根本就是不合理
第四點:Documention 是世界級的完整,代表Programmer 需要看相當多的Documention.....
第五點:Rails 做一步,Symfony必須做三步,development time還是有差
小小的結論
我不認為 Symfony 在開發中小型 Application 上面,會有贏過Rails 的優勢
至於大型 Application上面呢?既然要寫大型Application,那為什麼要用 PHP 寫大型 Application XD
引用URL
http://cgi.blog.roodo.com/trackback/1681815