Uso delle estensioni di debug / sviluppatore di protezione modalità abbastanza
-
16-10-2019 - |
Domanda
Ci sono alcune estensioni belle per gli sviluppatori di Magento che di solito non si vuole avere su un sistema live.
Come si può tenerli nel repository del progetto, ma evitare loro di essere esposto in un negozio dal vivo?
Soluzione
Ci sono due relativamente nuove tecniche per farlo:
-
Modman modo da essere in grado di controllo da soli cosa distribuire per ogni ambiente. Questo significa che si corrono
modman deploy [name-of-dev-extension]
solo al vostro ambiente dev. -
Magento-compositore con diversi scenari
composer.json
per diversi ambienti . E modo ancora più semplice è quello di specificare quelle estensioni come dev-moduli e quindi installare il progetto utilizzando l'interruttore--require-dev
sul computer di sviluppo.
Altri suggerimenti
Quelli di solito può essere disattivata comodamente con una bandiera di configurazione, in modo che siano tecnicamente attivo ma non fare nulla. Se si imposta questo flag su false in app/etc/local.xml
del sistema live, si dovrebbe andare bene.
MageTrashApp che è stato creato presso il Magento Hackathon a Berlino di recente. Consente di disattivare i moduli tramite il pannello di amministrazione.
Un modo semplice per farlo è, è la disabilitazione del modulo in / etc / modules, spingendolo, ignorare il file in locale e attivare di nuovo.
Penso che il modo migliore per affrontare questo è o mantenere tutti i moduli nella codePool locale e disattivare tutti i moduli locali dal vivo con questa linea nel vostro local.xml:
<disable_local_modules>true</disable_local_modules>
Oppure si può fare "Output Disabilita Module" nel backend sul vostro ambiente vivo. (Sistema -> Configurazione -> Avanzate). Tuttavia questo non interamente disattiva il modulo. Ma forse è solo abbastanza di volere che si desidera nascondere di esso.
L'unica altra cosa che posso pensare è scrivere del codice che può tirare fuori questo. Basta controllare se è in modalità sviluppatore (Mage::getIsDeveloperMode()
) e moduli quindi disattivare. Ho trovato qualche dettaglio in più sul raggiungimento di questo qui: https://stackoverflow.com/questions/ 6520634 / Magento-how-to-disable-modulo-programmazione
Io di solito basta metterli nel mio ambiente di test, ma non li controlla nel sistema di controllo di versione, ad esempio utilizzando il file .gitignore
da escludere che vengano considerati per commettere.
C'è una diapositiva in Imagine 2011 Conferenza da Erik Hansen. Egli ha dichiarato un codice nella diapositiva, che è come di seguito (per la modalità sviluppatore)
# File : index.php
if(preg_match('/^stage\.|\.dev$/', $_SERVER['HTTP_HOST'])) {
$_SERVER['MAGE_IS_DEVELOPER_MODE'] = true;
}
qui è, Erik consentendo una regolazione in base ai sottodomini che è possibile personalizzare da soli.