2012-11-16 40 views
25

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

質問:それはすべてのステップと回避巨大なリファクタリングがステップの後に、少なくとも部分的に動作するアプリケーションをステップ・バイ・ステップを続行することは可能ですか?はいの場合、手順は何ですか? ZF2 Skeleton Application

  • を設定することにより、

    1. スタート:ここ

      は、ステップ・バイ・ステップの移行の私の考えですが、私はすべてのステップの後に作業アプリケーションで終わるかどうかは知りませんSet up a new module(MyApp)を開き、ZF1アプリケーションのコンテンツをMyAppモジュールのフォルダ構造に再編成します。その後、非常に基本的な設定とブートストラップを設定し、IndexControllerをZF2 AbstractActionControllerから拡張して移行します。モデル(Zend_Db)とビュー(Zend_View)は後で移行されます。ここでの目標は、多くの依存関係を持たない動作中のIndexController :: indexActionを持つことです。

    2. さらに設定とブートストラップ(ルーティング、翻訳、ロケール、キャッシュ、Db、Acl、ViewHelpersなど)を設定します。これらのコンポーネントのZF1バージョンを最初に設定し、後でそれらを1つずつマイグレートしたいと思います。
    3. 他のコントローラを移行し、Zend \ Diまたはusing the ServiceManagerのいずれかでコントローラに依存関係注入を設定します。
    4. 古いphingスクリプトを新しいディレクトリ構造と連携させることで、自動配置をセットアップします。
    5. ビュー(ヘルパーを含む)とフォームをZF2に移行します。
    6. (Zend_DbからZF2 Zend \ DbまたはDoctrineに)モデルを移行します。
    7. 他のZF1コンポーネントを1つずつ(Translate、Locale、Cache、Aclなど)移行します。
    8. リファクタリングリハビリと長い休暇。

    しかし、特定のZF2コンポーネントがZF1コンポーネントと一緒に機能する場合にのみ、各ステップの後に作業アプリケーションがあります。私はそれがどういうことか分かりません。 ZF2コントローラでZF1ビュー(およびビューヘルパー)を使用することができます。

  • +0

    実際にZF1とZF2が並んで動作するので、より小さなステップが可能です。最大の問題は、自分のプロジェクトを再編成することです。私は、ZF1 App USUALLYは複数のモジュールであると主張します。あなたはかなり理解しており、あなたの出発点は大丈夫です。移行は難しいことであり、ほとんどすべてのリファクタリングで終わります。P – Sam

    +2

    ZF2を全く新しいフレームワークと考えてください。私は、あなたのアプリケーション全体を書き直す必要があると確信しています... – shadyyx

    +0

    マイグレーションガイドがないと思います。私はあなたのアプリケーションをZF2のために書き直さなければならないと思う – Andreas

    答えて

    8

    このガイドでは、Zend Frameworkの1からZend Frameworkの2に移行するためのツールと戦略を提供することを意図しているZend Frameworkのからの移行1

    すべてのプロジェクトのために働く単一のソリューションはありませんが、またプロセスを自動化するツール。このガイドで

    、我々は以下をカバーします:あなたのコードを名前空間をため

    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

    +0

    私は自分で(まだ)それをしていませんが、少なくともそれは公式ソースからです。私がそれを(正常に)完了すれば、私はこれを更新します。 – electblake

    7

    中間層では簡単だと書かれていましたが、遠隔地のように見えるライブラリやリンクは見たことがありません。

    ここでは、ドキュメントの概要ページにある唯一のものと最新の情報があります。

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

    は、私はそれが後方互換性を持つように予想していなかったが、私は信じてここで重要文は、多くのコンポーネントの 主要な書き換えです。

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

    私が大好きで、たくさん使っていて、フォーム、キャッシュ、セッションのように心に知っていたことは全く異なります。私のプロジェクトでは、何のメリットもありませんでした。私が思ったZF2の重要なオブジェクトの1つは、以前のものよりも悪化したこれらの書面による文書化の見直しでした。

    他の既存のZF1.xプロジェクトでは、アプリケーションの完全な書き換えを除いて、アップグレードの管理方法がわかりません。 Zend Framework 2 FAQから

    +0

    ZF2の主な利点はモジュール性です。 ZF1の場合のようにすべてを書き換える必要はありません。 ZF1とZF2の間で移行するための中間層を提供することが最初の目標でしたが、現在のところそうではありません。まさに率直に言って、そこには疑問があります。 – Sam

    +0

    @Sam ZF1がモジュール式ではないと思う理由は分かりません。それはモジュール式でなければならないようなライブラリです。 ZF1で何かを書き直すことはめったにありませんでした。そして、OPによる質問は、ZF2とZF1についてではありません。 –

    +0

    私はあなたの投稿にコメントしていました。私はZF1とzf2の議論をしていませんでした:)そして、モジュール式ではzf1アプリケーションについて話していました。フレームワーク自体は高度です;) – Sam

    1

    私はZend Frameworkの1で作成されたアプリケーションを持っている - 私は新しいバージョンに移行することができるでしょうか?

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

    ただし、現時点では実際の移行レイヤーについては聞いていません。私たちはそこに存在することを願っていますが、この時点で私は疑問を抱いています。

    1

    私たちは、この一年間Zend Frameworkの2にZend Frameworkの1から大規模なアプリケーションを移行しています。私たちは名前空間のような単純なものから始め、ゆっくりとさまざまなライブラリコンポーネントに取り組みました。最終的にはZend_LayoutZend\FilterZend_Formと一緒に編集してZend\FilterZend\JsonZend_NavigationZend\Permissions\Aclとするなどの作業を行いました。これにより、ほとんどすべてのZF1コンポーネントが除外されましたが、ZF1アプリケーション構造の例外は、Zend_Application,Zend_ConfigZend_Controller、およびZend_Layoutの4つのクラスがあります。パズルの最後の部分はZend\Mvc\ApplicationZend\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モジュールを利用する
    • コントローラーとビューを移動する(まだこのプランの計画を立てている)
    関連する問題