Magento geliştiricileri neden Magento 2 için Zend Framework 2 kullanıyor?


21

Magento çoğunlukla Magento 2 için orijinal Zend Framework'ü (sürüm 1) kullanmaya devam edecektir (kaynak: Magento 2 ve Zend Framework 2 )

Magento 2'nin Magento 1 ile nasıl geriye dönük olarak uyumlu olmayacağını görünce, neden Zend Framework 2'ye geçmiyorlar?

Yetkili, teknik bir cevap bekliyorum.


bu soru magento.stackexchange.com/questions/33259/… ile aynı% 99 . ama önceki sorgulayıcı @Marius cevabını kabul etmedi diye kopya olarak ayarlayamıyor. Ancak cevabını bilmek istekliyim. Bu "NEDEN" :-) için resmi bir cevap bekleyelim:
Rajeev K Tomy

4
Sadece bir çekirdek geliştirici buna tam olarak cevap verebilir. @AntonKril'i çağıralım.
Marius

@Marius: evet, bu soru magento 2'yi öğrenmeye başladığımızda aklımıza gelen temel bir şüphedir. Bu gizli tutulmamalıdır. Aksine açıklanması gerekir. Bir yetkilinin bu soruya cevap vermesini umalım
Rajeev K Tomy

Yanıtlar:


32

Sadece yukarıdaki önemli kısımları tekrar etmek için, Magento 2 uygulamaları doğrudan Zend'i değil, resmi Magento 2 API'lerini kullanmalıdır. Bu nedenle, geliştiriciler hangisine dayanacağımızla ilgilenmemelidir.

Akılları sorgulamak için, Magento 2 farklı çerçevelerden bitler kullanır. Zend 1'den veritabanı erişimini kullanıyoruz. Doktrin'e geçmeyi araştırdık, ancak Magento 2.0.0 sürümü için çok fazla bir çalışma yapıldı. Ancak bunu 2.1, 2.2, 3.0 veya ... 'de yapabiliriz (henüz bir taahhüt yok). Bunu yaptığımızda, mevcut yeni bilgilere dayanarak ZF1, ZF2, Doctrine vb. Kullanılıp kullanılmayacağını da değiştirebiliriz. Magento 2'de ayrıca bir YML dosyası da bulunabilir (yani, Symfony'nin bir bölümünü kullanıyoruz). Yükleyicinin bir kısmı ZF2'nin bir kısmını kullandı (ZF1'de yeni bir uygulama geliştirmeli miyiz?), Ancak bu değişebilir. Ayrıca, JavaScript'te MV * için ilginç görünen muhtemelen Angular'ın küçük bir bölümünü gördük.

Ancak Magento çerçevesinde ne olduğuna bakarsanız, muhtemelen yanlış olanı yapıyorsunuzdur. Uygulama kodunuz umrunda olmamalıdır. Magento çerçevesi tarafından sağlanan "resmi" API'leri kullanıyor olmalısınız, böylece mevcut müşteri sitelerini veya uzantılarını etkilemeden iç kısımları değiştirebiliriz. "Resmi" olarak, hangi API'lerin "desteklendiğini" belgeleyeceğiz (henüz çok iyi yapılmadı) - yükseltmeleri daha güvenilir hale getirmek için, bu API'leri mümkün olduğu kadar sabit tutacağız, ancak temel kodda değişiklikler yapacağız performansı iyileştirmek için taban vs.

Not: Bu alana çok sık bakmıyorum - GitHub sorun izleyicisinde Magento 2 soruları izleniyor. Şu anda hepsini orada tutmaya çalışıyoruz.


1
Zend sınıflarını kodumuzda kullanmak yanlış mı? Magento'nun şablon dosyalarında bazı Zend statik işlevler çağırdığını fark ettim <?php echo \Zend_Json::encode($block->getCheckoutConfig()); ?>.
Zvonimir Burić

1
Evet, @ ZvonimirBurić, \Magento\Framework\Json\DecoderInterfacebunun yerine kullanmalısınız . Veya json_encode/ json_decodedoğrudan.
nevvermind

doğrulayıcılar ne olacak? Görünüşe göre Magento Zend_Validation eşdeğeri değil
Antonio Pedicini

10

Soru birçok kez soruldu. Hepsi yatırımın geri dönüşü için aşağı kaynar. Taşınması çok büyük bir çaba, değer o kadar yüksek değil ve Magento, çünkü dağıtımda bir kütüphane olarak ZF1'i de içeriyor, sadece bu kütüphane için sorumluluk alıyor;


2
Cevap için teşekkürler Piotr. ZF1'in hala Zend tarafından desteklenip desteklenmediğini biliyor musunuz? Şu anda (" modası geçmiş) bir SSS (burada: framework.zend.com/about/faq )", şu anda Zend Framework 1'i bakım ve güvenlik güncellemeleri de dahil olmak üzere en azından 2014'ün başında tamamen desteklemeyi planlıyoruz.

3
@Marius: magento 2 önümüzdeki 2,3 yıl boyunca hüküm sürecek (umarım). Bu durumda, Tom’un söylediği gibi, eğer ZF1’in desteği geçerse, o zaman Magento 2’nin geleceği hakkında ne düşünürsünüz? kim bilir !
Rajeev K Tomy

5
PHP'yi kullanımlarına dayanarak, Magento'nun sürümleriyle ilgili son derece muhafazakar olma politikası olduğunu tahmin ediyorum. Güvenlik güncellemeleri almak için en eski PHP sürümlerini gerektirirler. PHP nihayet hayatın sonunu açıklayana kadar 5.3'e ihtiyaç duyuyorlardı. Tahmin etmem gerekirse, ZF'ye yaklaşımlarının aynı olduğunu düşünebilirim: Hala desteği olan en eski ve en kararlı sürümü kullanmak. Programmer_rkt'ın yorumladığı gibi, bana göre ZF1, 2.x sürümlerinde bile hayatın sonuna geldiğinde Magento ZF2'ye geçecek veya ZF1'i Zend ve ZF1 topluluğuyla birlikte tutacakları.

3
Bu doğru cevap. :-)
benmarks

2
Yeniden gözden geçireceğimizi bilmiyorum, yapmayacağımızı da bilmiyorum. ZF2 üzerinde olmamanın etkisi bir şeyleri etkileyebilecek güçlüyse, bunun olacağından şüpheliyim. Ürün ekibinin bir parçası olmadığımı unutmayın , bu sadece benim düşüncem.
benmarks

2

Aynı sebepten dolayı Prototype.js yerine Magento 1 için jQuery kullandılar.

ZF1'in ZF2'den iki kat daha hızlı olduğu görülüyor. Burayı kontrol et

Mesele şu ki, ZF1 bu yıldan itibaren (bildiğim kadarıyla) artık desteklenmiyor. Ben şahsen ZF2 ile giderdim. Eminim birazdan optimize edeceklerdir.


1
Magento 1 piyasaya sürüldüğünde jquery'nin bebek olduğunu ve prototype.js orada iyi kurulmuş bir javascript aracı olduğunu okudum. Magento gibi büyük bir balık için, jquery gibi yerleşik olmayan bir araca güvenmek (o zamanlar) kutunun dışında
Rajeev K Tomy

Cevap için teşekkürler. Lütfen biraz detay verir misiniz?

1
ZF1'in ZF2'den iki kat daha hızlı olduğu görülüyor. Burada kontrol edin: developerknowhow.com/zf1-vs-zf2 Sorun, ZF1'in bu yıl itibariyle (bildiğim kadarıyla) artık desteklenmediği. Ben şahsen ZF2 ile giderdim. Eminim birazdan optimize edeceklerdir.
Razvan

Magento, yürütme hızından dolayı Zend Framework'ü seçtiğinden emin değilim. Tam olarak hızlı olduğu bilinmemektedir.

Biraz araştırma yaptım ve ZF1'in en son sürümünün 8 gün önce piyasaya sürüldüğünü öğrendim. framework.zend.com/downloads/archives Hala destekleniyor gibi görünüyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.