27

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

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

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

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

ただし、特定の ZF2 コンポーネントが ZF1 コンポーネントと連携して動作する場合にのみ、すべてのステップの後に作業アプリケーションを作成します。たとえば、ZF1 ビュー (およびビュー ヘルパー) を ZF2 コントローラーで使用できるかどうかはわかりません。

4

4 に答える 4

8

どこかで、中間層で簡単にできると書かれていましたが、ライブラリ内のリンクや、それとまったく同じように見えるものを見たことがありません。

現在、唯一の最新情報は、ドキュメントの概要ページにあります。これです:

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

下位互換性があるとは思っていませんでしたが、ここで重要なのは、多くのコンポーネントが大幅に書き直されたことだと思います。

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

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

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

于 2012-11-16T17:29:39.577 に答える
2

Zend Framework 2 FAQから:

Zend Framework 1 で構築したアプリケーションを持っていますが、新しいバージョンに移行できますか?

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

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

于 2013-02-28T23:41:25.793 に答える