2010-08-04 25 views
3

我正在建造一個像使用PHP作爲個人項目一樣的網站。我從編寫平坦的PHP文件開始(將SQL查詢與HTML混合在一起)。在做了幾頁之後,我注意到它很難維護。所以我開始使用ORM(Propel)。然後我介紹了Symfony。PHP框架適合什麼樣的項目?

我開始重構我的代碼以適應Symfony的MVC模式。對我來說,對於像Symfony這樣的小型項目來說,事實上它讓事情變得更加複雜,實際上我發展得更慢。框架更適合由多個團隊設計的大型應用程序嗎?或者我做錯了什麼?

+0

對您正在使用的工具缺乏廣泛的瞭解,以便快速開發和調整它。除非你知道你想要做的一切,以及如何用選擇的工具來實現它,否則你必須先掌握它。 – Prix 2010-08-04 21:06:51

+0

CodeIgnitor非常輕巧,不會讓你覺得你正在做很多工作來創造一些小東西。雖然,像SO這樣的網站;這是一個小項目嗎? – 2010-08-04 21:14:55

+0

我只是想學習web開發設計模式和最佳實踐。這個項目不是很重要,它只是我學習所學知識的一種方式。 – 2010-08-04 21:26:27

回答

5

任何框架或新技術將有一個學習曲線,在這個曲線期間,你似乎會變得更慢。如果您遵循框架的MVC模式和最佳實踐,您通常會得到更簡潔,更易維護的代碼。 MVC有一些開銷,並且讓事情結構合理。對於較大的項目,持續時間較長的項目(網站的生命週期以及開發時間)以及擁有更多開發人員的項目,這種開銷將會帶來更多收益。對於不會維護的小型站點,開銷可能太大而不值得。

如果你打算寫專業的PHP,或者你打算認真寫,你的時間花在學習一個或兩個流行的框架上。

此外,絕不是「像SO這樣的網站」這個「小型項目」。

+1

用於學習曲線+1,長期用於更大的回報。 – cbednarski 2010-08-04 21:35:34

+1

完全同意。新技術看起來很乏味,直到你發現魔術爲止;-)我開始的最後10個業餘時間項目都是以「這個項目對於使用symfony來說太小了......」然後幾天後:「該死,我需要重寫這個「......要點是:如果你已經超越了學習曲線,那麼很少有使用框架的情況是不合理的。 – phidah 2010-08-04 22:04:22

1

這取決於框架以及您希望以現在的發展速度取決於未來發展的難易程度。最好的方法是嘗試一些框架,看看最適合您的是什麼。一些隨機的例子包括:

我用所有上述的,我個人認爲的Agavi是最好的,但肯定不是最快的工作。我沒有像其他人那樣對Cake感到如此印象深刻,但這又是個人偏好。

0

我不知道你的項目真的很「小」,但即使學習一個框架和設計你的項目需要時間,以便它遵循框架的哲學,它通常是值得的。根據我的經驗,當項目開始像你的項目顯然一樣成長時(天真的PHP→分解模型→...),最好的情況是,代碼非常類似於簡單的框架。另一方面,當你使用框架時,你的項目的基本設計通常是經過深思熟慮的,所以即使你不是一個有經驗的軟件架構師(也許你是?),你將爲你的項目打下良好的基礎。

另外,你說這是一個個人項目,所以我想這是某種愛好或教育的事情。使用框架可以很好地瞭解Web開發中的設計模式和最佳實踐。

也許Symfony並不是您的最佳選擇。我想最後是個人意見。就我個人而言,當使用Python進行編碼時,我喜歡使用CakePHP編碼PHP和Django。