从Zend框架1逐步迁移到2

我必须将应用程序从Zend Framework 1.12.0迁移到版本2。似乎还没有迁移指南。我已经研究了ZF2编码约定,并采用了依赖注入(Zend\Di)和PHP 5.3命名空间。我的目标是将我的 ZF1 应用程序重构为 ZF2 模块。

问题:是否可以在每一步之后逐步使用至少部分工作的应用程序,并避免巨大的重构步骤?如果是,步骤是什么?

以下是我对这种分步迁移的想法,但我不知道我是否在每一步之后最终都会得到一个工作的应用程序:

  1. 首先设置 ZF2 骨架应用程序
  2. 设置新模块 (MyApp) 并将 ZF1 应用程序的内容重新组织到 MyApp 模块文件夹结构中。然后设置非常基本的配置和引导,并通过从 ZF2 抽象操作控制器扩展索引控制器来迁移索引控制器。模型 (Zend_Db) 和视图 (Zend_View) 将在稍后迁移。这里的目标是有一个没有很多依赖项的工作 IndexController::indexAction。
  3. 设置更多配置和引导(路由、转换、区域设置、缓存、数据库、Acl、ViewHelpers 等)。我想先设置这些组件的 ZF1 版本,然后再逐个迁移。
  4. 使用 Zend\Di 或使用 ServiceManager 迁移其他控制器并将依赖关系注入设置到控制器中。
  5. 通过使旧的 phing 脚本与新的目录结构一起使用来设置自动部署。
  6. 将视图(包括帮助程序)和表单迁移到 ZF2。
  7. 迁移模型(从Zend_Db迁移到 ZF2 Zend\Db 或 Doctrine)。
  8. 逐个迁移其他 ZF1 组件(转换、区域设置、缓存、Acl 等)。
  9. 重构康复和长假。

但是,只有当某些 ZF2 组件与 ZF1 组件协同工作时,我才会在每一步后都有一个 workin 应用程序。我不知道是否可以将ZF1视图(和视图助手)与ZF2控制器一起使用。


答案 1

从 Zend Framework 迁移 1

本指南旨在提供从 Zend Framework 1 迁移到 Zend Framework 2 的工具和策略。没有一个单一的解决方案适用于每个项目,也没有任何工具可以自动化该过程。

在本指南中,我们将介绍以下内容:

  1. 用于为代码命名的工具。
  2. 用于在 Zend Framework 1 应用程序中使用 Zend Framework 2 的工具。
  3. 并行运行 Zend Framework 2 和 Zend Framework 1 的策略。
  4. 使代码更易于迁移的策略,主要侧重于域逻辑和 MVC 层的干净分离。
  5. 迁移 MVC 层的策略。
  6. 迁移域层的策略。

http://framework.zend.com/manual/2.1/en/migration/overview.html


答案 2

曾经在某个地方写过,使用一些中间层很容易,但我从未在库中看到任何链接或任何东西看起来都像它一样。

现在,您唯一可以找到的内容和最新信息是在文档的概述页面中。它是这样的:

注意 ZF2 与 ZF1 不向后兼容,因为该框架在 PHP 5.3+ 中实现了新功能,并且由于许多组件的重大重写。

我从没想过它会向后兼容,但我相信这里的关键陈述是许多组件的重大重写

几个月前,我用ZF2开始了一个新项目,我只想要图书馆。所以没有MVC,这应该很容易,对吧?到目前为止,这几乎是一场噩梦,因为没有什么是一样的了。除了一些熟悉的类名或结构之外,整个框架已经从头开始完全重写。

我喜欢,经常使用的东西,以及像表单,缓存或会话这样心里知道的东西是完全不同的。对于我的项目,它花费了我很多时间,没有任何好处。我认为ZF2的关键对象之一是彻底修改文档,这些文档的书面方式比前一个更糟糕。

对于我现有的其他ZF1.x项目,除了完全重写应用程序之外,我不知道如何管理升级。


推荐