2010-11-06 69 views
5

我正在構建一個使用Zend Framework的應用程序,我不知道這個框架是否有點太臃腫或者完成了。也許它是我解決問題的方式,但我發現使用這個框架迫使我編寫更多的代碼。Zend Framework是值得的嗎?

任何建議或意見?

+0

你想要建立什麼? – rwilliams 2010-11-06 16:30:59

+0

售票系統,以及cms – snakeyyy 2010-11-06 16:42:34

+0

查看redmine。它具有問題管理,svn集成和wiki。你可以從bitnami獲得「可安裝」。 – 2010-11-07 06:47:07

回答

3

ZF組件非常適合有針對性的任務 - 例如, Zend_Oauth,Zend_Pdf,Zend_Gdata等。您可以使用它們來實現這些任務,即使不將您的應用程序基於ZF MVC結構,並且我絕對建議您這樣做(免責聲明:我是ZF的貢獻者,所以我可以是主觀的) 。

至於像ZEnd_Application,Zend_View等大ZF的東西 - 這取決於你的需要和風格。對於一個大項目,我會說去做,它在開始的時候可能看起來很大,但是在任何情況下你都會得到大致相當的東西。另一方面,如果你的項目比較小,那麼你可能會考慮使用一些簡單的或者根本不需要框架的東西 - 但要小心,一些小項目的增長速度比你預期的要快。

看看您的評論,您正在構建票務系統和CMS,它看起來對於框架來說足夠大。給ZF一個嘗試。從更小,更簡單的例子開始,使用一本好書,一些示例代碼也可能非常有用。當你進入思維模式時,你會發現它並不像你想象的那樣臃腫 - 它只是有更多的功能和擴展點,但是你會發現你可能需要這種功能。

1

這只是建議或建議,所以在此插入免責聲明。

這並不是說您必須編寫多少代碼才能在應用程序中顯示第一頁。在你的應用程序中總共有多少代碼將在你的應用程序中出現,並且有多少代碼將在整個地方重複使用。以及改變/維護將變得多麼容易。

使用zend,您現在可以編寫更多代碼,以便稍後編寫更少的代碼。在開始時,您正在編寫控制器,模型,映射器,視圖,表單和佈局。很快你會將操作添加到控制器,只寫表單和視圖。

編寫模型的成本不應該分配給您編寫的第一個視圖。通過添加,編輯,刪除和列表視圖以及搜索視圖來分配它。

我只有4周進入zend框架,所以我認爲自己是一個初學者,但我已經編程了25年,並且php已經6年了,所以我看到了智慧。

您可能需要注意的是,某些zend例程在php 5.3中不起作用,我對此沒有更多瞭解。

編輯:如果您正在尋找更簡單的框架,請嘗試使用codeigniter(或kohana,它是codeigniter的一個分支)。因爲你手動添加文件,而不是運行腳本來生成控制器,模型等(比如symfony,zend,cakephp,yii等),所以使用起來更簡單。到目前爲止,我所做的大部分工作都是使用codeigniter。

3
  1. 您確定您需要自己的CMS嗎?你會寫一個好的反垃圾郵件過濾器嗎?這不是ZF強迫你寫更多的代碼。也許你只是選錯路了。

考慮將您的應用程序與一些很好的解決方案(如Wordpress或Drupal)集成。

  1. Zend Framework沒有臃腫。事實上,這是一個很好的編程實踐的例子。它是成熟的,這意味着它應該用於成熟的項目和成熟的程序員。

Altought ZF是這裏最好的一個,你可以試試Symfony,也許你會覺得它更友好。有很多用戶貢獻,準備好的資源。

0

那麼如果您希望打字速度更快,Zend Framework可能不是最好的選擇。它肯定需要更多時間打字,例如$this->getRouter()->getWhatever()->thenSmtMore()->theFuncNeeded()。然而,它結構良好,設計良好。而Sasha Shumann在QA會議上所說的是,「你花更多的時間閱讀代碼而不是寫它」。那麼,當你這樣思考,但在現實生活中,尤其是如果你正在處理一堆低預算的項目,你可以犧牲一些質量時,Zend Framework的默認應用程序基礎設施會降低你的工作效率。但這並不意味着ZF是臃腫的...

我喜歡ZF的一點是,由於模塊是鬆散耦合的,所以您總是有機會將它用作圖書館或開發自己的工作環境基於ZF組件。這正是我所做的,所以我花了幾個月時間來構建基於ZF組件的自己的框架,並且可以按照我喜歡的方式更快地構建新項目。根據我的經驗,當您使用任何框架(包括Ruby on Rails或Django)時,是的,您在開始時會獲得很多速度,但遇到特殊情況時,將更難找到適合該情況的解決方案。解決方案是花費足夠的時間來掌握框架,肯定得到一些社區支持,因爲標準文檔是永遠不夠的,並優化您的工作流程(例如使用NetBeans或Zend Studio等高級IDE,使用代碼創建代碼片段庫模板等)