你是正确的,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