web-dev-qa-db-ja.com

Zend Framework1を3に移行するにはどうすればよいですか

ZendによってVer1から3にアーキテクチャがどの程度変更されたかを誰かに説明してください。最近zendはZF3をリリースしましたが、zf1からzf3に移行する方法を提供する情報はありません。 zf1で開発されたアプリケーションがあり、PHP 7 power with ZF3を使用するようにアップグレードすることを検討しています。コード全体を書き直す必要があるか、最新バージョンに移行するのにどれだけの労力が必要ですか。

また、ZF3はPHP7の下で4倍速いと主張しました。実際には、ZF3ではなくPHP7自体が高速です。過去数年でトップのフレームワークの1つであるLaravelフレームワークと比較して、どれだけ改善されたかはわかりません。

誰かがZF3を使用した場合は、彼らの経験を共有してください。

9
Dheeraj

大規模なアプリケーションを扱っている場合、ZF3に移行するための迅速で簡単な方法はありません。ルーティングからサービスまで、Zend Framework 2/3の下にある実用的および理論的なフレームワークは、最初の反復のフレームワークとはまったく逆です。

ZF2が最初にリリースされたとき、私は非常に大規模なプロジェクトでZF1からZF2への移行(およびZF2からZF3への移行)を完了しました。最終的にはインクリメンタルアプローチを使用し、コアZF1ライブラリからのわずかな逸脱が必要になりました(つまり、いくつかのZendクラスを編集しました)。これは非常にうまく機能しました。 ZF1は9月にEOLにヒットしたため、バグ修正やいかなる種類の更新も行われなくなるため、これによって重大な問題が発生することはありません。

以下にリストした投稿には、この移行を完了するための手順の説明と、ZF1/ZF2を部分的にブリッジすることを目的としたいくつかのコードへのリンクがあります。 ZF2およびZF3からの変更では、下位互換性の問題があまり発生しなかったため、その投稿で詳しく説明した手順は、(ほとんど)ZF1からZF3への移行に引き続き適用できます。

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

役立つと思われるリンクがさらに2つあります。最初のリンクは、Zendが提供するZF1からZF2への移行ガイドです。 2番目のリンクは、ZendFrameworkの一般的なドキュメントです。コンポーネントがバージョン3.0(zend-mvc、zend-servicemanagerなど)に更新されている場合は、ZF2/3間で何が変更されたかを説明する移行ガイドが含まれている必要があります。

7
webjawns.com

大変な道かもしれませんが、かなりの時間はかかるかもしれませんが、可能だと思います。

  1. 基本的に、ZF2から移行してからZF3に移行します。

  2. または、PHP7の速度を上げたいだけの場合は、PHP7にアップグレードして、いくつかの(すべてではない)バグを発見する可能性のあるlintテストを実行します。

続きを読む...

最初にZF2に移行します

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

  1. コードの名前空間を作成するためのツール。
  2. Zend Framework1アプリケーション内でZendFramework2を使用するためのツール。
  3. Zend Framework2とZendFramework1を並行して実行するための戦略。
  4. コードの移行を容易にするための戦略。主に、ドメインロジックとMVCレイヤーを明確に分離することに重点を置いています。
  5. MVCレイヤーを移行するための戦略。
  6. ドメインレイヤーを移行するための戦略。

次に、ZF3に移行します:

Zend Framework v2からv3は、インクリメンタルアップグレードとして意図されています。過去1年間、ユーザーがアップグレード用のコードを準備できるように、コンポーネントのv2バージョンで上位互換性機能を提供するように努力しました。

ただし、これは包括的な移行ガイドではありません。破損が発生する可能性があり、発生する可能性のある領域の大部分はわかっていますが、開発者が実際に更新しているときにのみ、完全な状況が表示されることもわかっています。そのため、これは進行中の作業として扱い、問題やプルリクエストを介して更新や変更を提案してください。改善できるようになります。

https://docs.zendframework.com/tutorials/migration/to-v3/overview/

ZFからZF2への大幅な変更により、かなりの量の破損があると思います。

ただし、ZF1とZF2を並行して実行できます。

https://framework.zend.com/manual/2.4/en/migration/zf1_zf2_parallel.html

技術的な観点からは、ZF2は名前空間を使用し、ZF1は使用しないため、クラス名間に競合がないため、ZF2をZF1と並行して実行することは絶対に可能です。 ZF1とZF2を並行して実行することは、アプリケーション全体をZF1からZF2に移行することが不可能または不便なプロジェクトで、移行戦略として使用できます。たとえば、元のZF1機能を維持しながら、ZF2を使用してアプリケーションの新しい機能を実装できます。

ZF1とZF3を並行して実行できるかどうかは私にはわかりませんが、おそらく不可能ではありません。

または、PHP7で試してみてください

私の場合は、最初にPHP7にアップグレードして、コードの破損を探すだけかもしれません。

次のようなものを実行して、PHP7に対してPHPコードをlintテストします。

find . -name "*.php" -print0 | xargs -P 8 -n 1 -0 sh -c '/usr/local/Cellar/php70/7.0.0/bin/php -l $0 || true' | grep -v 'No syntax'

Macを使用している場合は、brewを使用してインストールすることでPHPバージョンスイッチャーを使用できます。

brew install brew-php-switcher

Httpd.confでこの行をコメントアウトする必要があるかもしれません:

#LoadModule php5_module libexec/Apache2/libphp5.so

その後:

brew install php71

この行をhttpd.confに追加します。

<FilesMatch .php$>
    SetHandler application/x-httpd-php
</FilesMatch>

バージョンの切り替え:

brew-php-switcher 71
4
Clay