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.xml
als
<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?
quelle
Antworten:
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
Es wird zurückgegeben,
false
wenn das Modul deaktiviert ist. Was bedeutet, dass alles seinMage::getModel('reports/..
wirdfalse
und welche Methode auch immer Sie versuchen werden, dieses (angeblich) Objekt aufzurufen, wird Ihnen einenCall to a member function on a non-object
schwerwiegenden 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
Reports
Modul.Wenn Sie also sicherstellen, dass Sie alle Situationen behandeln, in denen
reports
aufgerufen wird, können Sie sie deaktivieren. Ansonsten besser nicht.quelle
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!
quelle