Risposte:
Ci sono due tecniche relativamente nuove per farlo:
Usa modman in modo da poter controllare da solo cosa distribuire per ogni ambiente. Questo significa che corri modman deploy [name-of-dev-extension]
solo nel tuo ambiente di sviluppo.
Usa magento-compositore con composer.json
scenari diversi per ambienti diversi. E il modo ancora più semplice è specificare quelle estensioni come moduli di sviluppo e quindi installare il progetto usando l' --require-dev
interruttore sulla macchina di sviluppo.
Questi di solito possono essere disabilitati comodamente con un flag di configurazione, quindi sono tecnicamente attivi ma non fanno nulla. Se imposti questo flag su false nel app/etc/local.xml
tuo sistema live, dovresti andare bene.
local.xml
file nel repository. Quale potrebbe essere un caso.
local.xml
solito non è nel repository
Guarda MageTrashApp che è stata creata recentemente al Magento Hackathon di Berlino. Consente di disattivare i moduli tramite il pannello di amministrazione.
Un modo semplice per farlo è disabilitare il modulo in / etc / modules, spingerlo, ignorare il file localmente e abilitarlo di nuovo.
Penso che il modo migliore per affrontare questo sia quello di mantenere tutti quei moduli nel codePool locale e disabilitare tutti i moduli locali in diretta con questa linea nel tuo local.xml:
<disable_local_modules>true</disable_local_modules>
Oppure puoi fare "Disabilita output modulo" nel back-end nel tuo ambiente live. (Sistema -> Configurazione -> Avanzate). Tuttavia, questo non disabilita del tutto il modulo. Ma forse è abbastanza per volerlo nascondere.
L'unica altra cosa a cui riesco a pensare è scrivere del codice che può farcela. Basta controllare se è in modalità sviluppatore ( Mage::getIsDeveloperMode()
) e quindi disabilitare i moduli. Ho trovato qualche dettaglio in più su come raggiungere questo qui: /programming/6520634/magento-how-to-disable-module-programmmatic
local
moduli ti costringerà a spostare tutti gli altri moduli da local
codePool in community
e lo farà anche per tutte le future estensioni. La disabilitazione dell'output dei moduli, come hai detto, consente comunque all'estensione di rallentare il tuo negozio. E la terza soluzione richiederà modifiche che verranno sovrascritte con l'aggiornamento delle estensioni.
Di solito li inserisco nel mio ambiente di test, ma non li controllo nel sistema di controllo della versione, ad esempio utilizzando il .gitignore
file per escluderli dall'essere presi in considerazione per il commit.
C'è una diapositiva nella conferenza Imagine 2011 di Erik Hansen. 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;
}
ecco, Erik abilita un'impostazione basata sui sottodomini che puoi personalizzare tu stesso.