2011-08-16 83 views
9

我即將開始一個新項目,並掛上了要使用的語言/框架。我一直是專業的PHP程序員,但這不是這個項目的規模。我已經和RoR玩過了,到目前爲止我一直非常感動。現在,兩個主要的競爭對手是RoR和Symfony2。新項目:Ruby on Rails或Symfony2(或其他框架)

我與RoR的主要掛機: - 我不知道紅寶石,或者我很難做。我可以閱讀它,但是會寫代碼。 - 我讀過關於它很慢的抱怨,而且在CLI中它似乎很慢。

我與Symfony2的主要懸念: - 幾乎沒有任何文檔。 Symfony1.x?肯定..但不是symfony2 - 也有一點支持。他們網站上的BB就像80%的垃圾郵件。 - 去安裝它在本地開發環境還沒有能夠甚至得到運行(看我第一次掛斷)

這個項目將是相當複雜的,超越了基本的CRUD操作。它不是在一個超緊的時間線下,但有一個。對於里程碑1,基本上是一個日曆,一些金融機構的東西(不是金融機構的交易,只是個人財務組織類型的東西)和一個項目經理/ cms。

另外,我打算使用其他框架,但symfony2似乎是現在最好的權利。如果symfony2有RoR的支持/文檔​​/教程/等,這將是一個沒有道理的。

我真的很感興趣聽到什麼stackoverflowverse不得不說在這個問題上。即時通訊不斷印象與本網站的答案/答覆的質量。

其他一些子問題(現在在我的腦海裏): - 如果你推薦一個不同的php框架,爲什麼? - 你提到的任何選項最大的困難是什麼?

我知道CakePHP是最接近RoR的,但我一直在閱讀的是模型有點過分(多對多關係等)。

現在,我傾向於RoR。簡而言之,我真的想學習它,它可以完成這項工作。我只是不知道紅寶石,我已經準備好了很多關於symfony2的好消息。

任何建議,你可以提供將不勝感激。謝謝!

+0

如果你想在學習一門新的語言,同時在這個項目上工作,我會推薦Python和Django,通過Ruby和RoR。 – solarc

回答

9

對我來說Symfony2迄今爲止已經非常棒。與Symfony1.x相比,文檔很少,但是在Sf2中開始更容易,而且事情非常明確,對於框架在內部的工作原理知之甚少。

有一個app/check.php腳本會警告你需要運行它的任何依賴關係,並且支持主要發生在它們非常活躍的mailing list中(甚至不知道是否有BB)。一些組件,如Twig,也有自己的列表。

+0

甚至不知道他們有一個郵件列表...我通常無法忍受那些,所以也許我掩蓋了它。謝謝..我檢查出來。 – afxjzs

+0

這是關於** Twig **:p – Ouadie

22

個人而言,我建議如果你開始一個新項目,這個項目恰好是你必須做的最大的項目,那麼你應該堅持你最瞭解的東西。這恰好是PHP。

我已經使用Ruby或Rails。事實上,我們公司有一些使用RoR的生產應用程序。我學習RoR的最佳方式是開展小型項目。我永遠不會考慮選擇一種我不熟悉的編程語言,然後再學習一個新的框架,開始編寫一個大型項目。

至於Symfony2,我們幾周前開始使用它。 Symfony2是一個很好的框架,看起來很有希望。它很乾淨,很好地分離和快速。但是,我們在Symfony2中遇到了太多的錯誤/令人頭痛的/不一致的地方,以繼續使用它。我們將在成熟和文檔增長後再次開始工作(大量文檔現在已過時)。希望他們會發布一些Jobeet教程,但是對於Symfony2。

轉到CakePHP。 CakePHPs代碼庫是舊的。事實上,它在PHP 4.3.2上正常工作。它沒有利用PHP5提供的所有優點(絕對類,接口,私有的受保護的屬性,異常,魔術方法,註釋,通過引用傳遞對象等等)。CakePHP數據庫抽象層,雖然它有改進,一旦你的數據庫結構變得太複雜(例如很多連接),它的效率就會非常糟糕。

移動到Symfony的1.4我已經使用了很多大型項目

我喜歡使用,因爲:

  1. PHP5
  2. 事件系統
  3. 依賴注入
  4. 緩存系統
  5. 表格(很好地融入了Doctrine 2)實際上,這是我最喜歡的功能。
  6. 許多插件(sfGuard用戶管理,例如)
  7. 嫩枝(好的模板語言)
  8. 高度可配置的
  9. 可擴展的(雖然速度不如Symfony2的)
  10. 很多文獻(Jobeet的教程是偉大的)

如果PHP是當下你的特長,你需要開始一個大型項目的工作,然後開始使用基於PHP的框架,因爲你知道語言的語法和功能最好。

當您有一個小型項目時,轉到RoR。

只是我的2美分。

祝你好運。

+0

謝謝你的迴應。 但是,到目前爲止,app/check.php已通過,並且它在config.php中的檢查通過了...然後它不起作用(請參閱:http://stackoverflow.com/questions/7072552/symfony2-trips - 出門) 所以是啊...至今沒有留下深刻的印象。 我想現在就開始這個項目,而不是舊的/過時的技術(symfony1.x),當時已經有一個symfony2 ......這並沒有什麼意義......除非我錯過了一些東西。 – afxjzs

+2

symfony 1.4沒有過時.. symfony 2只是使用php 5.3中的新功能,即命名空間。 symfony 2雖然目前可能發佈,但仍然有可能發生各種變化,直到它成爲一個成熟的開發平臺。如果您比較sf 1.x樹並查看1.0和1.4之間的更改,請考慮sf2仍然只是在2.0版本中。 Web框架只是解析和連接字符串的聰明方法。過時的技術幾乎不適用於Web框架,除非它們過時了。 sf2不會做任何sf1不完美的能力。 –

+0

捆綁系統和覆蓋本地「第三方」捆綁部件是我在s2中主要與s1工作多年後在s2中看到的巨大吸引力/優勢。我還沒有真正寫過任何s2項目,因爲@ alex.pilon給出的原因 – yitznewton

9

這是一個老話題,但事情有所改變,我會推薦Symfony2。他們目前的文檔非常棒(symfony.com),而且它更容易學習新手。我確實嘗試了RoR,但是通過symfony,我更快地進入了它。

0

我會迴應solarc關於Symfony 2的評論。我用它來做一些小型項目,並且本週開始更加雄心勃勃。我希望看到一個完整的Jobeet風格的教程,但主要文檔足以讓我開始使用恕我直言。我正在詳細閱讀,並且學習了一些我錯過了使用文檔作爲簡單參考的東西。

尋找包是我最大的挫折,但文件提到knpbundles.com,這似乎是一個很好的資源。

2

我很驚訝沒有人提到Ruby的超級豐富GEM社區,因此對於Ruby on Rails,那裏只有很多功能,所以很多人在一些MIT /開源項目上工作。對我而言,社區是驅使我選擇一個框架而不是另一個框架的原因。配置和不同的模板引擎的數量,在軌道上有很多紅寶石。

對於比較圖表檢查了這一點:

http://vschart.com/compare/doctrine-php/vs/ruby-on-rails

在這一天結束這一切歸結到任何你知道的,但不要忽略了社區和已書面功能你已經免費...

+0

爲什麼不選擇作曲家而不是Gemfile –

+0

我認爲這個「圖表」中的最後一個屬性都是關於這些比較辯論通常會結束與:) –