Geschwindigkeitsoptimierung durch Deaktivieren des Mage_Reports-Moduls?

7

Wenn Sie über die Optimierung der Geschwindigkeit von Magento nachdenken, gibt es verschiedene Möglichkeiten wie das Caching (PHP, Datenbank, sogar Ganzseiten-Caches), um Ihre Site zu beschleunigen.

Eine andere Möglichkeit besteht darin, den Verarbeitungsaufwand zu reduzieren, dh die Anzahl der in Ihrem Shop ausgeführten Module zu reduzieren.

Kürzlich habe ich mich gefragt, ob es möglich / sicher ist, das Mage_Reports-Modul zu deaktivieren.

Dies ist in der Datei app/etc/modules/Mage_All.xmlals

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

Es wird also mit dem Kern gebündelt geliefert und hängt von mehreren anderen Modulen ab.

Ich sehe jedoch keine anderen Module mit Mage_Reports als Abhängigkeit.

Ich habe es in einem Testgeschäft deaktiviert und alles scheint gut zu laufen.

Frage => Stimmt es, dass der Store neben dem Verlust der Berichtsdaten natürlich auch ohne dieses Modul gut laufen kann?

Oder gibt es Punkte, an denen mein Geschäft kaputt geht, wenn dieses Modul nicht aktiviert ist?

mpaepper
quelle
2
Kürzlich angesehene Produkte stehen im Zusammenhang mit Berichten
FlorinelChis

Antworten:

3

Ihr Geschäft könnte funktionieren, das stimmt, solange Sie die Admin-Panel-Grafiken ebenfalls deaktiviert haben. In Wirklichkeit liegt es jedoch an den Programmierern und wie sie mit Situationen umgehen, in denen Module deaktiviert sind. Das Problem ist, dass Magento 1.x keinen Handhabungsmechanismus hat, der dieses Problem automatisch für Sie löst. Wenn du siehst

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

Es wird zurückgegeben, falsewenn das Modul deaktiviert ist. Was bedeutet, dass alles sein Mage::getModel('reports/..wird falseund welche Methode auch immer Sie versuchen werden, dieses (angeblich) Objekt aufzurufen, wird Ihnen einen Call to a member function on a non-objectschwerwiegenden PHP-Fehler verursachen.

Während das Magento-Team seine Arbeit erledigt hat (nun ja, wenn Sie Diagramme aktivieren, die Ihr Administrator beispielsweise im Dashboard deaktivieren sollte), können Sie nicht wissen, wie Erweiterungen von Drittanbietern mit diesen Situationen umgehen, wenn sie versuchen, das zu verwenden ReportsModul.

Wenn Sie also sicherstellen, dass Sie alle Situationen behandeln, in denen reportsaufgerufen wird, können Sie sie deaktivieren. Ansonsten besser nicht.

Jernej Golja
quelle
4
Die Drittanbietererweiterung sollte in ihrer Modulkonfiguration einen <depends> -Block haben, damit das Modul einen Fehler auslöst, wenn Sie keine Berichte aktiviert haben. Dies sollte - ja ich weiß ... - Best Practice
Fabian Blechschmidt
2

Ich kann Ihnen nicht sagen, was passieren wird, wenn Sie das Modul deaktivieren, aber ich kann Ihnen sagen, wie Sie (wahrscheinlich) die Auswirkungen auf die Verarbeitung stoppen können, ohne es zu deaktivieren.

Alle Verarbeitungskosten stammen von Beobachtern. Und wahrscheinlich ein Xeon-Job, aber das ist hier nicht relevant. Wenn Sie die Beobachtung der Ereignisse stoppen können, können Sie den Overhead beseitigen.

Der naive Weg wäre, die config.xml zu bearbeiten und sie auskommentieren. Tu das nicht.

Der richtige Weg wäre, ein eigenes Modul zu erstellen, das von Mage_Reports abhängt und nur eine config.xml hat. Definieren Sie darin ein Frontend-Tag und kopieren Sie alle Beobachter aus Mage_Reports. Ändern Sie dann das Ereignis, das sie beobachten, in ein nicht reales Ereignis, das niemals ausgelöst wird. Fügen Sie dann unter dem Beobachter Typ ein Tag mit dem Wert deaktiviert hinzu.

Wenn Sie im Versandereignis in App.php nachsehen, können Sie sehen, dass es funktioniert. Sie überschreiben ihre mit einem behinderten Beobachter. Nichts wird gerufen und nichts bricht!

Tim Reynolds
quelle
Das klingt nach einer guten Idee!
Mpaepper