Domanda

Quando il pensiero su come ottimizzare la velocità di Magento, ci sono diverse possibilità, come la cache (PHP, database, anche piena pagina cache) per velocizzare il tuo sito.

Un'altra possibilità è quella di ridurre la quantità di elaborazione che è fatto, vale a dire ridurre il numero di moduli in esecuzione nel vostro negozio.

Di recente, ho chiesto se sia possibile / sicura per disattivare il modulo Mage_Reports.

Questo è nel file app/etc/modules/Mage_All.xml come

<Mage_Reports>
    <active>true</active>
    <codePool>core</codePool>
    <depends>
        <Mage_Customer/>
        <Mage_Catalog/>
        <Mage_Sales/>
        <Mage_Cms/>
    </depends>
</Mage_Reports>

Così viene fornito con il nucleo e dipende da diversi altri moduli.

Tuttavia, non vedo altri moduli avendo Mage_Reports come una dipendenza.

ho disattivato in un negozio di prova e tutto sembra funzionare bene.

Domanda => E 'vero, che oltre a perdere i dati dei report, naturalmente, il negozio può funzionare bene senza questo modulo?

In alternativa ci sono dei punti in cui il mio negozio si romperà quando questo modulo non viene attivato?

È stato utile?

Soluzione

Il vostro lavoro negozio potrebbe, è vero, fino a quando si dispone di Grafici pannello di amministrazione anche disabilitato. In realtà, anche se è tutto a programmatori e come sono la gestione di situazioni con moduli di essere disattivato. Il problema è che Magento 1.x non dispone di un meccanismo di gestione che avrebbe risolto automaticamente il problema per voi. Se si guarda a

public function getResourceModelInstance($modelClass='', $constructArguments=array())
{
    $factoryName = $this->_getResourceModelFactoryClassName($modelClass);
    if (!$factoryName) {
        return false;
    }
    return $this->getModelInstance($factoryName, $constructArguments);
}

tornerà false quando il modulo è disabilitato. Il che significa tutto Mage::getModel('reports/.. sarà false e qualunque metodo ti provare a chiamare il che (dovrebbe essere) oggetto lancerà un Fatal error Call to a member function on a non-object php.

Mentre squadra Magento ha fatto il loro lavoro (o meglio, non ha in realtà, se si attiva Grafici l'amministratore deve rompere sul cruscotto, per esempio), non è possibile sapere come terzo partito estensioni gestirà quelle situazioni in caso provano utilizzare il modulo Reports.

Quindi, se si assicurarsi che stai gestire tutte le situazioni in cui reports sono chiamati, quindi è possibile disattivarlo. In caso contrario, meglio di no.

Altri suggerimenti

Non posso dire che cosa accadrà se si disattiva il modulo, ma posso dirvi come è possibile (probabile) fermare il suo impatto elaborazione senza disabilitarlo.

Tutto il suo costo di trasformazione viene da osservatori. E probabilmente un lavoro Xeon, ma che non è pertinente. Se si riesce a fermare l'osservazione degli eventi è possibile eliminare le spese generali.

Il modo più semplice sarebbe quello di modificare il config.xml e commentare. Non farlo.

Il modo giusto sarebbe quello di creare il proprio modulo che dipende Mage_Reports e solo un config.xml. In che definire un tag front-end e copiare in tutti gli osservatori Mage_Reports. Quindi modificare l'evento che stanno osservando a qualche sciocchezza evento non reale che non potrà mai avere sparato. Quindi aggiungere un tag in base al tipo di nome dell'osservatore con un valore di disabile.

Se si guarda a caso la spedizione in app.php si sarà in grado di vedere che funziona. Si sovrascrive loro con un disabile osservatore. Nulla viene chiamato e si rompe niente!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top