Perché gli sviluppatori Magento non utilizzano Zend Framework 2 per Magento 2?


21

Magento continuerà a utilizzare principalmente Zend Framework originale (versione 1) per Magento 2 (fonte: Magento 2 e Zend Framework 2 )

Visto che Magento 2 non sarà comunque retrocompatibile con Magento 1, perché non eseguono l'aggiornamento a Zend Framework 2?

Spero in una risposta autorevole e tecnica.


questa domanda è simile al 99% a magento.stackexchange.com/questions/33259/… . ma non posso impostarlo come duplicato poiché l'interrogatore precedente non ha accettato la risposta di @Marius. Tuttavia, non vedo l'ora di conoscere la sua risposta. Aspettiamo una risposta ufficiale per quel "PERCHÉ" :-)
Rajeev K Tomy,

4
Solo uno sviluppatore principale può rispondere con precisione. Richiamiamo @AntonKril.
Marius

@Marius: sì, questa domanda è un dubbio fondamentale che ci verrà in mente ogni volta che inizieremo a imparare il magento 2 (specialmente chi ha familiarità con il magento 1. *). Questo non dovrebbe essere tenuto in segreto. Piuttosto dovrebbe essere divulgato. Speriamo che un funzionario dia una risposta a questa domanda
Rajeev K Tomy,

Risposte:


32

Solo per ripetere le parti importanti sopra, le applicazioni Magento 2 dovrebbero usare le API Magento 2 ufficiali, non Zend direttamente. Pertanto, gli sviluppatori non dovrebbero preoccuparsi di ciò su cui si basa.

Per menti curiose, Magento 2 utilizza bit di diversi framework. Usiamo l'accesso al database da Zend 1. Abbiamo studiato il passaggio a Doctrine, ma era troppo lavoro per la versione Magento 2.0.0. Possiamo comunque farlo in 2.1, 2.2, 3.0 o ... (nessun impegno ancora). Quando ci arriviamo, possiamo anche cambiare idea se usare ZF1, ZF2, Doctrine ecc. In base alle nuove informazioni disponibili. Magento 2 potrebbe anche contenere un file YML (nel senso che usiamo parte di Symfony). Una parte dell'installer ha utilizzato parte di ZF2 (dovremmo sviluppare una nuova app su ZF1?), Ma questo potrebbe cambiare. Abbiamo anche visto una piccola parte di Angular che probabilmente sembrava interessante per MV * in JavaScript.

Ma non appena guardi cosa c'è sotto il framework Magento, probabilmente stai facendo la cosa sbagliata. Il codice dell'applicazione non dovrebbe interessare. Dovresti utilizzare le API "ufficiali" fornite dal framework Magento in modo che possiamo modificare gli interni senza influire sui siti o sulle estensioni dei clienti esistenti. Con "ufficiale", documenteremo quali API sono "supportate" API (non ancora eseguite molto bene) - per rendere gli aggiornamenti più affidabili, manterremo queste API il più stabili possibile, ma apporteremo modifiche al codice sottostante base per migliorare le prestazioni ecc.

Nota: non guardo molto spesso in quest'area: le domande di Magento 2 vengono visualizzate sul tracker dei problemi di GitHub. Stiamo cercando di tenerli tutti lì al momento.


1
È quindi sbagliato usare le classi Zend nel nostro codice? Ho notato che Magento chiama alcune funzioni statiche di Zend nei file modello, ad es <?php echo \Zend_Json::encode($block->getCheckoutConfig()); ?>.
Zvonimir Burić,

1
Sì, @ ZvonimirBurić, dovresti usare \Magento\Framework\Json\DecoderInterfaceinvece. O json_encode/ json_decodedirettamente.
nevvermind

che dire dei validatori? sembra che non ci siano equivalenti Magento di Zend_Validation
Antonio Pedicini,

10

La domanda è stata posta molte volte. Tutto si riduce per tornare sugli investimenti. È un grande sforzo migrare, il valore non è così alto e Magento, perché include ZF1 come libreria nella distribuzione, si assume solo la responsabilità di questa libreria, comprese le patch per i problemi, ecc.


2
Grazie per la risposta Piotr. Sai se ZF1 è ancora supportato da Zend? Ho trovato una FAQ (probabilmente obsoleta) (qui: framework.zend.com/about/faq ) che afferma: "Attualmente stiamo pianificando di supportare completamente Zend Framework 1 almeno all'inizio del 2014, compresi gli aggiornamenti di manutenzione e sicurezza".

3
@Mario: Magento 2 governerà per i prossimi 2,3 decenni (si spera). In tal caso, come ha detto Tom, se il supporto di ZF1 è scaduto, cosa penseresti del futuro di Magento 2. Mantenere una base obsoleta è abbastanza buono? chissà !
Rajeev K Tomy,

5
Sulla base della loro gestione di PHP, suppongo che Magento abbia una politica di essere estremamente conservatore con le loro pubblicazioni. Richiedono la versione stabile più vecchia di PHP che sta ancora ottenendo aggiornamenti di sicurezza. Hanno richiesto 5.3 fino a quando PHP ha finalmente annunciato la fine della vita. Se dovessi indovinare, potrei pensare che il loro approccio a ZF sia lo stesso: usare la versione più vecchia e stabile che abbia ancora supporto. La domanda per me, come commenta programmer_rkt, è che Magento passerà a ZF2 quando ZF 1 raggiungerà la fine del ciclo di vita anche in una versione 2.x o manterranno ZF1 da soli senza Zend e la comunità ZF1.

3
Questa è la risposta corretta :-)
benmarks

2
Non so che riconsidereremo, non so che non lo faremo. Se l'effetto di non essere su ZF2 fosse forte, ciò potrebbe influenzare le cose, ma dubito che sarà così. Tieni presente che non faccio parte del team del prodotto , quindi questa è solo la mia opinione.
benmarks

2

Per lo stesso motivo hanno usato Prototype.js invece di jQuery per Magento 1.

Sembra che ZF1 sia circa due volte più veloce di ZF2. Controlla qui

Il problema è che ZF1 non è più supportato (per quanto ne so) da quest'anno. Personalmente andrei con ZF2. Sono sicuro che lo ottimizzeranno presto.


1
Ho letto che jquery era un bambino quando è stato rilasciato magento 1 e prototype.js era lo strumento javascript ben noto là fuori. Per un pesce grosso come il magento, fare affidamento su uno strumento non consolidato come jquery (a quel tempo) è fuori dagli schemi
Rajeev K Tomy,

Grazie per la risposta. Puoi per favore elaborare un po '?

1
Bene, sembra che ZF1 sia circa due volte più veloce di ZF2. Controlla qui: developerknowhow.com/zf1-vs-zf2 Il problema è che ZF1 non è più supportato (per quanto ne so) da quest'anno. Personalmente andrei con ZF2. Sono sicuro che lo ottimizzeranno presto.
Razvan,

Non sono sicuro che Magento abbia scelto Zend Framework per la sua velocità di esecuzione. Non è esattamente noto per essere veloce.

Ho fatto alcune ricerche e ho scoperto che l'ultima versione di ZF1 è stata rilasciata 8 giorni fa. framework.zend.com/downloads/archives Sembra che sia ancora molto supportato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.