web-dev-qa-db-ja.com

Zend Framework 1から2への段階的な移行

アプリケーションをZend Framework 1.12.0からバージョン2に移行する必要があります。 まだ移行ガイドがないようです 。私はすでにZF2コーディング規約を研究しており、依存性注入(Zend\Di)とPHP 5.3名前空間)を採用しています。私の目標は、ZF1アプリケーションをZF2モジュールにリファクタリングすることです。

質問:少なくとも部分的にすべてのステップの後にアプリケーションを実行するおよび巨大なリファクタリングのステップを回避するで段階的に進めることは可能ですか?はいの場合、手順は何ですか?

このような段階的な移行についての私の考えは次のとおりですが、すべての手順の後にアプリケーションが動作するようになるかどうかはわかりません。

  1. ZF2 Skeleton Application を設定することから始めます
  2. 新しいモジュール (MyApp)をセットアップし、ZF1アプリケーションのコンテンツをMyAppモジュールのフォルダー構造に再編成します。次に、非常に基本的な構成とブートストラップをセットアップし、ZF2 AbstractActionControllerから拡張してIndexControllerを移行します。モデル(Zend_Db)とビュー(Zend_View)は後で移行されます。ここでの目標は、多くの依存関係がない動作するIndexController :: indexActionを用意することです。
  3. さらに構成とブートストラップを設定します(ルーティング、変換、ロケール、キャッシュ、DB、ACL、ViewHelpersなど)。これらのコンポーネントのZF1バージョンを最初にセットアップし、後で1つずつ移行したいと思います。
  4. 他のコントローラーを移行し、Zend\Diを使用するか、 ServiceManager を使用して、コントローラーへの依存性注入を設定します。
  5. 古い phing スクリプトが新しいディレクトリ構造で機能するようにして、自動デプロイメントをセットアップします。
  6. ビュー(ヘルパーを含む)とフォームをZF2に移行します。
  7. モデルを移行します(Zend_DbからZF2 Zend\DbまたはDoctrineへ)。
  8. 他のZF1コンポーネントを1つずつ移行します(翻訳、ロケール、キャッシュ、ACLなど)。
  9. リハビリと長期休暇のリファクタリング。

ただし、特定のZF2コンポーネントがZF1コンポーネントと連動する場合にのみ、すべての手順の後にworkinアプリケーションを使用します。それが例であるかどうかはわかりません。 ZF2コントローラーでZF1ビュー(およびビューヘルパー)を使用できます。

26
aimfeld

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

8
electblake

どこかで、中間層があれば簡単に簡単に書けると書いてありましたが、ライブラリにリンクやリモートのように見えるものはありませんでした。

今、見つけることができる唯一の最新情報は、ドキュメントの概要ページにあります。これです:

注ZF2はZF1との下位互換性がありません。これは、フレームワークによって実装されたPHP 5.3+の新機能のため、および多くのコンポーネントが大幅に書き換えられたためです。

下位互換性があるとは思っていませんでしたが、ここでの重要なステートメントは、多くのコンポーネントのmajor rewritesだと思います。

ほんの数か月前に、ZF2で新しいプロジェクトを始めましたが、ライブラリだけが必要でした。簡単なMVCはありませんよね?これまでのところ、同じものは何もないため、これはかなり悪夢です。よく知られたクラス名や構造のほかに、フレームワーク全体が完全に完全に書き直されました。

フォーム、キャッシュ、セッションなど、私が愛し、よく使用し、心から知っていたものはまったく異なります。私のプロジェクトでは、多くの時間を費やして、何のメリットもありませんでした。 ZF2の主要なオブジェクトの1つは、ドキュメントのオーバーホールであり、これらのドキュメントの記述は、以前のものよりもはるかに悪いと考えました。

他の既存のZF1.xプロジェクトでは、アプリケーションを完全に書き直す以外に、アップグレードを管理する方法がわかりません。

8
Adrian World

Zend Framework 2 FAQ から:

Zend Framework 1で構築されたアプリケーションがあります。新しいバージョンに移行できますか?

もちろんです。 Zend Framework 2の重要な部分は、将来使用可能になる新しいZF 2エンジンでZF 1コードを実行できる移行レイヤーです。これにより、制御されたペースで新しいZF 2コードを追加し、既存のコードをリファクタリングできます。

ただし、現時点では、実際の移行レイヤーについては聞いていません。そこにあることを願うだけですが、現時点では疑問があります。

2
Thomas Albright