我必须迁移从Zend框架1.12.0〜2版本的应用程序似乎有不迁移指南还 。 我已经学习ZF2的编码习惯,我采用了依赖注入(Zend的\ DI)和PHP 5.3的命名空间。 我的目标是重构我ZF1应用到ZF2模块。
问:是否有可能进行一步一步的每一步之后至少部分运行的应用程序 ,并避免巨大的重构步骤是什么? 如果是的话,有什么措施?
这里是我这样的一步一步迁移的想法,但如果我最终每个步骤之后,运行的应用程序,我不知道:
- 通过设置启动ZF2骨架应用
- 建立一个新的模块 (MyApp的)和我ZF1申请的内容整理成MyApp的模块文件夹结构。 然后设置非常基本的配置和引导,并从ZF2 AbstractActionController扩展它迁移的IndexController。 该模型(Zend_Db的)和视图(Zend_View的)将在稍后进行移植。 这里的目标是有一个工作的IndexController ::的indexAction不具有许多依赖。
- 设立更多的配置和自举(路由,转换,区域设置,缓存,DB,访问控制列表,ViewHelpers,...)。 我想先设置这些组件的版本ZF1迁移和后来他们一个接一个。
- 迁移其他控制器和设置依赖注入到控制器要么与Zend \狄或通过使用的ServiceManager 。
- 通过使旧的设置自动部署phing脚本与新的目录结构的工作。
- 迁移的观点(包括佣工)和形式ZF2。
- 迁移模型(从Zend_Db的要么ZF2 Zend的\ DB或教义)。
- 迁移其他组件ZF1一个接一个(翻译,语言环境,高速缓存,ACL,...)。
- 重构康复和漫长的假期。
不过,我会只如果某些部件ZF2用ZF1组件协同工作每个步骤之后,干活的应用。 我不知道它是否如可能与ZF2控制器使用ZF1的意见(和视图助手)。
从Zend框架1迁移
本指南旨在为从Zend框架1迁移到Zend框架2.没有单一的解决方案,将每个项目的工作,也没有任何工具的过程自动化提供的工具和策略。
在本指南中,我们将介绍以下内容:
- 工具命名空间代码。
- 工具为您的Zend Framework 1个应用程序中耗时的Zend Framework 2。
- 策略运行Zend框架2和Zend框架1并联。
- 策略用于使代码更易于迁移,主要放在您的域逻辑的完全分离和MVC层聚焦。
- 策略迁移MVC层。
- 策略迁移域层。
http://framework.zend.com/manual/2.1/en/migration/overview.html
某处有人写一次,这将是易peasy一些中间层,但我从来没有见过的,看上去只是远程喜欢它的库中的任何链接或任何东西。
现在唯一的事情,最新的信息,你可以找到在文档的概览页面。 就是这个:
注意ZF2是不能向后兼容ZF1,因为在PHP由框架实现的新功能5.3+,而且由于许多组件的主要重写。
我从来没有想到它是向后兼容的,但这里的关键语句,我相信是许多组件的主要重写 。
我已经开始与ZF2一个新的项目在几个月前,我只希望图书馆; 所以没有MVC应该很容易吧? 到目前为止,它已经几乎是一个噩梦,因为没有什么是相同的了。 除了一些熟悉的类名或结构整体框架已经完全从地上爬起来重写。
东西我喜欢,用了很多,并通过心脏知道像的形式,缓存或会话是完全不同的。 对于我的项目,它花了我很多时间,没有好处。 一个用于ZF2的主要对象我想的是大修这是比以前更差这些书面方式的文档。
对于我的其他现有ZF1.x项目,我不明白如何管理升级,除了完全重写应用程序。
从Zend框架2常见问题 :
我与Zend框架1构建的应用程序-我将能够将其迁移到新版本?
绝对。 Zend框架2的一个重要部分是迁移层,将允许ZF 1代码对新ZF 2发动机,其将在将来被提供运行。 有了它,你就可以添加新的ZF 2代码,并重构现有的代码,以控制节奏。
然而,在这一点上,我还没有听说过任何实际的迁移层。 我们只能希望会有,但在这一点上,我有我的怀疑。
我们已经在过去一年中从Zend框架1的大型应用程序迁移到Zend框架2。 我们开始了像命名空间简单的事情,慢慢地我们的工作方式进入不同的库组件。 最终,我们结束了编辑Zend_Layout
一起工作Zend\Filter
, Zend_Form
一起工作Zend\Filter
和Zend\Json
, Zend_Navigation
一起工作Zend\Permissions\Acl
,等等。这帮助我们消除异常几乎所有ZF1组件的ZF1应用结构,其包括四个类Zend_Application
, Zend_Config
, Zend_Controller
,和Zend_Layout
。 拼图的最后一块是执行Zend\Mvc\Application
和Zend\View
,其余的是ZF2就绪。
最近,我们创造了各种各样的代理挂钩到Zend\Mvc\Application
从ZF1和ZF2模块。 这一直是非常有帮助的。 我详细的操作步骤,在上http://webjawns.com/2013/11/migrating-to-zf2-integrating-composer-and-doctrineormmodule/ 。
综上所述...
- 转换前缀来命名空间(
Model_
到Model\
, Application_Controller
到Application\Controller
等) - 与同行ZF2包括自动加载磁带机更换非MVC组件
- 创建应用ZF2结构和钩子,开始利用ZF2模块
- 移动控制器和视图(在计划仍在工作的这一个)