我们有相当大的应用程序,它有大约 8 个模块(大模块),使用 Zend 框架 1 编写,并且已经由几个开发人员开发了 3 年多。此外,它每天都有很高的流量。我们也使用 Amozon s3、Sphinx、Memcache 和其他一些第三方服务。
将它迁移到 Zend 框架 2 是个好主意吗?因为当我们简要浏览文档时,似乎 Zend 框架 2 已被完全重写。因此,我们认为我们将无法轻松迁移应用程序,而不是根据 ZF 2 重新编写应用程序。
有值(value)的想法将不胜感激。
最佳答案
你是对的,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。
如果您坚持使用胖模型/瘦 Controller 范例,那么以一种相当直接的方式替换 Controller 、前端 Controller 、Zend_Application 的东西可能是可行的。一旦将其投入生产,您就可以在时间允许的情况下消除对 ZF1 组件的依赖。在我的情况下,没有太多,因为事情被很好地分解和包装(因此,例如,从 Zend_Cache 移动到 Zend\Cache 是微不足道的)
最后,您应该预先知道 View 层的东西(主要是与 helper 相关的东西)也不同。如果你有一堆复杂的 View 相关的东西(部分、自定义 View 助手等),你需要预测要么重写它们,要么找到一种方法在 ZF2 中使用旧的 Zend_View 东西,以便你可以迁移零碎的。我并没有真正处理这个问题,因为我们的界面相当简单,我们以此为契机对 UI 进行了大修。
只是我的 0.02 美元,但我希望它有所帮助。
关于php - 从 Zend Framework 1 迁移到 Zend Framework 2,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15450178/