3

我们有相当大的应用程序,其中包含使用 Zend 框架 1 编写的大约 8 个模块(大模块),并且已经由几个开发人员开发了 3 年多。此外,它每天都有很高的流量。我们还使用 Amozon s3、Sphinx、Memcache 和其他一些第三方服务。

将它迁移到 Zend 框架 2 是个好主意吗?因为当我们简要浏览文档时,Zend 框架 2 似乎已被完全重写。因此,我们认为我们将无法轻松迁移应用程序,而不是根据 ZF 2 重新编写应用程序。

有价值的想法将不胜感激。

4

2 回答 2

6

你说得对,ZF2 是完全不同的动物。事实上,如此不同,没有一种万能的迁移计划/策略。

但是,我最近进行了类似的迁移。这是一个相当复杂的业务线应用程序,最初编写了大约 18 个月,具有大量不同的功能。该决定的主要驱动因素是模块和事件系统的改进。

在我们的案例中,它变成了产品的一个主要版本,最终包括一系列 UI 更改以及所有管道。

假设你喜欢 ZF1,好消息是 ZF2 是更好的框架(作为一个框架)。ModuleManager、EventManager、Di 和 ServiceManager 组件(以及一般的 MVC 相关的东西)真的很棒,一旦你了解它们。坏消息是它们与 ZF1 完全不同。因此,您至少要注册彻底检查您的调度和路由,您将与 Zend_Registry 说再见(ServiceManager/ServiceLocator 是一个巨大的改进)。

另一个好消息是,您几乎可以肯定地保留所有旧的 ZF1 型组件,只要您需要它们。因此,如果您依赖 Zend_Cache、Zend_Log、Zend_Mail 等,稍微调整一下自动加载器配置应该可以实现。

我的建议是,如果您确实冒险,请考虑先迁移到 ZF2-as-a-framework,然后再担心 ZF2-as-a-component-library。

如果您坚持使用 fat-model/skinny-controller 范例,那么以相当直接的方式替换 Controllers、Front-Controller、Zend_Application 的东西可能是可行的。一旦将其投入生产,您就可以在时间允许的情况下消除对 ZF1 组件的依赖。就我而言,没有太多这样的事情,因为事情已经很好地分解和包装了(因此,例如,从 Zend_Cache 移动到 Zend\Cache 是微不足道的)

最后,您应该预先知道视图层的东西(主要是与助手相关的东西)也不同。如果您到处都有一堆复杂的与视图相关的东西(部分、自定义视图助手等),您需要预期重写它们,或者找到一种方法来使用 ZF2 中的旧 Zend_View 东西,以便您可以迁移零碎的。我并没有真正处理这个问题,因为我们的界面相当简单,我们把它当作一个大修 UI 的机会。

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

于 2013-03-17T05:09:33.070 回答
2

没有快速简便的迁移方法,因为 ZF2 与 ZF1 非常不同。

相关:从 Zend Framework 1 到 2 的逐步迁移

于 2013-03-16T23:19:16.927 回答