Magentoは、引き続きMagento 2の元のZend Framework(バージョン1)を引き続き使用します(ソース:Magento 2およびZend Framework 2 )
とにかくMagento 2がMagento 1との後方互換性がないことを見て、なぜZend Framework 2にアップグレードしないのですか?
権威のある技術的な答えを期待しています。
Magentoは、引き続きMagento 2の元のZend Framework(バージョン1)を引き続き使用します(ソース:Magento 2およびZend Framework 2 )
とにかくMagento 2がMagento 1との後方互換性がないことを見て、なぜZend Framework 2にアップグレードしないのですか?
権威のある技術的な答えを期待しています。
回答:
上記の重要な部分を繰り返すために、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課題トラッカーで見られます。現在、それらすべてを維持しようとしています。
<?php echo \Zend_Json::encode($block->getCheckoutConfig()); ?>
。
\Magento\Framework\Json\DecoderInterface
代わりに使用する必要があります。またはjson_encode
/ json_decode
直接。
質問は何度も聞かれました。投資収益率を上げるためにすべてが要約されます。移行には多大な労力がかかります。価値はそれほど高くありません。Magentoは、ディストリビューションのライブラリとしてZF1を含めているため、問題のパッチなどを含むこのライブラリの責任を負うだけです。
同じ理由で、Magento 1ではjQueryの代わりにPrototype.jsを使用しました。
ZF1はZF2の約2倍速いようです。ここで確認してください
問題は、今年の時点でZF1が(私の知る限り)サポートされなくなったことです。個人的にはZF2を使用します。近いうちに最適化されると確信しています。
Magento 2は、Zend Framework 1とZend Framework 2も使用しています。ラファエルによる次の回答を参照してくださいMagento 2の Zendコンポーネント
Zend Framework 1のサポート終了は2016年9月28日です。公式声明のリリースZend Framework 1のサポート終了のお知らせをご覧ください