Dove creare estensioni personalizzate per Magento2?


9

Alcuni articoli incoraggiano a creare estensioni personalizzate app/codee altri incoraggiano a crearle in vendor. Entrambi questi due metodi vanno bene?

E se volessi sovrascrivere un modulo vendor? Devo scrivere il mio modulo personalizzato anche all'interno della vendorcartella o app/code?

Funzionano come codepools come in Magento 1.x?

Per favore qualcuno chiarisca lo scopo di ogni directory.


Secondo me dobbiamo farlo in app / codice.
Arjun,

Risposte:


7

Puoi guardare le cartelle app/codee vendorcome i codici codici in M1, ma in realtà non sono codici codici.
Non esiste un concetto di "codepool" in M1.

  • vendorla cartella è per i moduli scaricati tramite il compositore. Non dovresti scrivere codice in quella cartella.
  • app/codeè il tuo parco giochi. Aggiungi le tue estensioni qui.

Se è necessario riscrivere / estendere qualcosa in vendor cartella, puoi farlo nella app/codecartella. Assicurati solo di specificare la dipendenza soft nel module.xmltuo modulo, nello stesso modo in cui l'hai fatto in M1 nel app/etc/modules/Namespace_Module.xmlfile.
L'unica differenza è che in m2 non sono effettivamente dipendenze. Sono sequenze.
In questo modo il tuo modulo verrà caricato dopo quello dalla vendorcartella


Non del tutto vero. Se installi M2 via github app/codenon è un parco giochi;)
Raffaello al Pianismo digitale

@Marius: grazie mille. Ha chiarito il dubbio che avevo. Se si desidera sovrascrivere il XMfile L in un modulo fornitore, dobbiamo ancora menzionare le dipendenze in module.xml ?
Sukeshini,

@RaphaelatDigitalPianism. Sì e no. In questo caso ottieni i moduli principali app/code, ma puoi comunque aggiungere i tuoi moduli. E l'unica ragione per cui dovresti installare m2 via github è giocarci e / o contribuire ad esso. Quindi questo tecnicamente rende ancora il app/codetuo parco giochi.
Marius

@Sukeshini. Non ne sono sicuro, ma penso che dovresti.
Marius

@Marius ha concordato w / tutto ciò che hai detto che avrei appena detto app/code/Vendorè il tuo parco giochi, quindi nessun rischio di rompere le cose fondamentali
Raphael al Digital Pianism

2

app/code è sicuramente il posto giusto per i moduli del tuo progetto.

Non devi mai scrivere codice all'interno vendor(questa directory non viene ignorata nel tuo controllo del codice sorgente), poiché è gestita solo dal compositore ed è dedicata al modulo di terze parti o al modulo che desideri riutilizzare (e hai pubblicato su packagist o sul tuo repository soddisfacente ).

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.