你是正確的,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美元,但我希望它有幫助。
是否有特定*需要*遷移? – deceze 2013-03-16 14:09:32
這是一個長期的應用程序。所以我們必須確保任何東西都不會被棄用。 – Shaolin 2013-03-16 14:15:47
爲什麼有人投票結束這個問題?我不認爲我問過重複的東西。我們的需求有點特定 – Shaolin 2013-03-16 14:32:00