Magento開発者がMagento 2にZend Framework 2を使用しないのはなぜですか?


21

Magentoは、引き続きMagento 2の元のZend Framework(バージョン1)を引き続き使用します(ソース:Magento 2およびZend Framework 2

とにかくMagento 2がMagento 1との後方互換性がないことを見て、なぜZend Framework 2にアップグレードしないのですか?

権威のある技術的な答えを期待しています。


この質問はmagento.stackexchange.com/questions/33259/…と99%類似しています。前の質問者が@Mariusの回答を受け入れなかったため、重複として設定できません。しかし、私はその答えを知りたいと思っています。「なぜ」に対する公式の回答を待ってみましょう:-)
ラジェエフKトミー14

4
コア開発者のみがこれに正確に答えることができます。@AntonKrilを呼び出しましょう。
マリウス

@Marius:はい。この質問は、magento 2(特にmagento 1. *に精通している人)を学習し始めるたびに頭に浮かぶ基本的な疑問です。これは秘密にしてはいけません。むしろ開示されるべきです。担当者がこの質問に答えてくれることを期待しましょう
ラジェエフKトミー14

回答:


32

上記の重要な部分を繰り返すために、Magento 2アプリケーションはZendを直接使用するのではなく、公式のMagento 2 APIを使用する必要があります。したがって、開発者は、何に基づいているかを気にする必要はありません。

心を探求するために、Magento 2は異なるフレームワークのビットを使用します。Zend 1からのデータベースアクセスを使用します。Doctrineへの移行を検討しましたが、Magento 2.0.0リリースには手間がかかりました。ただし、2.1、2.2、3.0、または...(コミットメントはまだありません)で行うことができます。それに到達すると、利用可能な新しい情報に基づいて、ZF1、ZF2、Doctrineなどを使用するかどうかも考えます。Magento 2にはYMLファイルも含まれている場合があります(Symfonyの一部を使用することを意味します)。インストーラーの一部はZF2の一部を使用しました(ZF1で新しいアプリを開発する必要がありますか?)が、これは変更される可能性があります。また、Angularのごく一部を見て、JavaScriptでMV *を面白そうに見えるかもしれません。

しかし、Magentoフレームワークの下にあるものを見ているとすぐに、おそらく間違ったことをしているでしょう。アプリケーションコードは気にしないでください。既存の顧客サイトや拡張機能に影響を与えることなく内部を変更できるように、Magentoフレームワークが提供する「公式」APIを使用する必要があります。「公式」では、どのAPIが「サポートされている」APIであるかを文書化します(まだ十分に行われていません)。パフォーマンスなどを改善するためのベース

注:私はこの領域をあまり頻繁に見ません。Magento2の質問はGitHub課題トラッカーで見られます。現在、それらすべてを維持しようとしています。


1
コードでZendクラスを使用するのは間違っていますか?Magentoがテンプレートファイル内のいくつかのZend静的関数を呼び出すことに気付きました<?php echo \Zend_Json::encode($block->getCheckoutConfig()); ?>
ズボニミールブリッチ

1
はい、@ZvonimirBurić、\Magento\Framework\Json\DecoderInterface代わりに使用する必要があります。またはjson_encode/ json_decode直接。
-nevvermind

バリデータはどうですか?Zend_Validationに相当するMagentoはないようです
Antonio Pedicini

10

質問は何度も聞かれました。投資収益率を上げるためにすべてが要約されます。移行には多大な労力がかかります。価値はそれほど高くありません。Magentoは、ディストリビューションのライブラリとしてZF1を含めているため、問題のパッチなどを含むこのライブラリの責任を負うだけです。


2
Piotrの回答に感謝します。ZF1がまだZendでサポートされているかどうか知っていますか?「(おそらく時代遅れの)FAQ(ここではframework.zend.com/about/faq)」を見つけました。「現在、メンテナンスとセキュリティの更新を含め、少なくとも2014年前半までZend Framework 1を完全にサポートする予定です。」

3
@Marius:magento 2は今後2,3年間(支配的に)統治する予定です。その場合、Tomが言ったように、ZF1のサポートが期限切れになった場合、Magento 2の将来についてどう思いますか?知るか !
ラジーエフKトミー14

5
PHPの取り扱いに基づいて、Magentoのリリースには非常に保守的であるというポリシーがあると思います。セキュリティ更新プログラムをまだ取得しているPHPの最も古い安定したリリースが必要です。PHPが最終的にサポート終了を発表するまで、5.3が必要でした。私が推測しなければならなかった場合、ZFへのアプローチは同じだと思うかもしれません。まだサポートが残っている最も古く、最も安定したバージョンを使用することです。私への質問は、programmer_rktのコメントとして、Magentoが2.xリリースでもZF 1が寿命に達するとZF2に切り替わるか、ZF1自体をZendおよびZF1コミュニティなしで維持するかということです。

3
これは正解です。:-)
ベンマーク14

2
私たちが再考することを知りません、私たちがしないことを知りません。ZF2に存在しないことの影響が強かった場合、それは物事に影響を与える可能性がありますが、そうなるとは思いません。私は製品チームの一員ではないので、これは単なる意見です。
ベンマーク14

2

同じ理由で、Magento 1ではjQueryの代わりにPrototype.jsを使用しました。

ZF1はZF2の約2倍速いようです。ここで確認してください

問題は、今年の時点でZF1が(私の知る限り)サポートされなくなったことです。個人的にはZF2を使用します。近いうちに最適化されると確信しています。


1
magento 1がリリースされたときjqueryが赤ん坊であり、prototype.jsがよく知られたjavascriptツールであったことを読みました。magentoのような大きな魚の場合、jquery(当時)のような確立されていないツールに依存することは、箱から出してすぐに
Rajeev K Tomy 14

答えてくれてありがとう。少し詳しく説明してもらえますか?

1
まあ、ZF1はZF2の約2倍速いようです。ここで確認してください:developerknowhow.com/zf1-vs-zf2問題は、今年の時点で(私の知る限り)ZF1がサポートされなくなったことです。個人的にはZF2を使用します。近いうちに最適化されると確信しています。
ラズバン14

Magentoがその実行速度のためにZend Frameworkを選択したかどうかはわかりません。高速であることは正確には知られていません。

いくつかの調査を行ったところ、ZF1の最新バージョンが8日前にリリースされたことがわかりました。framework.zend.com/downloads/archivesまだ非常にサポートされているようです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.