2013-03-16 208 views
3

我們有一個非常大的應用程序,它有大約8個使用Zend Framework 1編寫的模塊(大模塊),它已經由幾個開發人員開發了3年多。它每天都有很高的流量。我們也使用Amozon s3,Sphinx,Memcache和其他一些第三方服務。從Zend Framework遷移到Zend Framework 2 1

將它遷移到Zend Framework 2是一個好主意嗎?因爲當我們簡要地瀏覽文檔時,似乎Zend框架2已經被完全重寫。因此,我們認爲我們無法輕鬆遷移應用程序,而不是根據ZF 2重新編寫應用程序。

寶貴的想法將不勝感激。

+0

是否有特定*需要*遷移? – deceze 2013-03-16 14:09:32

+0

這是一個長期的應用程序。所以我們必須確保任何東西都不會被棄用。 – Shaolin 2013-03-16 14:15:47

+0

爲什麼有人投票結束這個問題?我不認爲我問過重複的東西。我們的需求有點特定 – Shaolin 2013-03-16 14:32:00

回答

6

你是正確的,ZF2是一個完全不同的動物。事實上,不同的是,沒有一成不變的遷移計劃/戰略。

但是,我最近做了類似的遷移。這是一個相當複雜的業務線應用程序,最初是在約18個月的時間內編寫的,具有多種功能。決定的主要驅動因素是模塊和事件系統的改進。

在我們的案例中,它變成了產品的主要發佈版本,最終包括一系列UI更改以及所有管道。

假設你喜歡ZF1,好消息是ZF2是更好的框架(作爲框架)。 ModuleManager,EventManager,Di和ServiceManager組件(和一般的MVC相關的東西)真的很棒,一旦你有了它們。壞消息是他們完全偏離了ZF1。所以你至少要註冊完全檢查你的調度和路由,你會告別Zend_Registry(ServiceManager/ServiceLocator是一個巨大的改進)。

另一個好消息是,只要你需要它們,幾乎可以肯定地保留所有舊的ZF1型組件。所以如果你依賴於Zend_Cache,Zend_Log,Zend_Mail等,那麼使用自動加載器配置的一些小技巧應該可以做到這一點。

我在暗示的是,如果你確實冒險,那麼可以考慮先遷移到ZF2作爲框架,然後再擔心ZF2作爲組件庫。

如果你堅持使用fat-model/skinny-controller範例,那麼以一種相當直接的方式替換控制器,Front-Controller,Zend_Application可能是可行的。一旦你開始投入生產,你可以在時間允許的情況下去除ZF1組件的依賴。在我的情況中,並沒有太多的東西,因爲事情已經被很好地考慮和包裝了(所以,例如,從Zend_Cache移動到Zend \ Cache是​​微不足道的)

最後,你應該知道前面那個View層次的東西(主要是幫手相關的東西)也不同。如果你在整個地方都有一堆複雜的視圖相關的東西(partials,custom view-helpers等),你需要預測重寫它們,或者找到一種方法在ZF2中使用舊的Zend_View,這樣你就可以遷移零碎。我沒有真正處理這個問題,因爲我們的界面非常簡單,我們把它作爲檢修用戶界面的機會。

只是我的0.02美元,但我希望它有幫助。

+0

謝謝,這是非常有用的 – Shaolin 2013-03-17 07:31:23