通过禁用mage_reports模块来优化速度?
-
16-10-2019 - |
题
当考虑优化洋红色的速度时,有几种可能性(例如缓存(PHP,数据库,甚至全页缓存))可以加快网站的速度。
另一种可能性是减少完成的处理量,即减少商店中运行的模块的数量。
最近,我想知道停用mage_reports模块是否可能 /安全。
这在文件中 app/etc/modules/Mage_All.xml
作为
<Mage_Reports>
<active>true</active>
<codePool>core</codePool>
<depends>
<Mage_Customer/>
<Mage_Catalog/>
<Mage_Sales/>
<Mage_Cms/>
</depends>
</Mage_Reports>
因此,它与核心捆绑在一起,并取决于其他几个模块。
但是,我看不到其他具有MAGE_REPORTS的模块是依赖性。
我在测试店里停用了它,一切似乎都很好。
问题=> 是真的,除了失去报告数据外,商店还可以在没有此模块的情况下运行良好吗?
还是当该模块未激活时,我的商店会破裂吗?
解决方案
您的商店可能会起作用,只要您还禁用了管理面板图,这是事实。实际上,尽管这一切都取决于程序员以及他们如何处理模块被禁用的情况。问题是,Magento 1.X没有可以自动为您解决该问题的处理机制。如果你看
public function getResourceModelInstance($modelClass='', $constructArguments=array())
{
$factoryName = $this->_getResourceModelFactoryClassName($modelClass);
if (!$factoryName) {
return false;
}
return $this->getModelInstance($factoryName, $constructArguments);
}
它将返回 false
当禁用模块时。这意味着全部 Mage::getModel('reports/..
将会 false
无论您尝试使用哪种方法(应该是)对象都会给您带来一个 Call to a member function on a non-object
PHP致命错误。
虽然Magento团队完成了他们的工作(好吧,他们实际上没有,如果您启用图表,则您的管理员应该在仪表板上打破),但您不知道第三方扩展程序将如何处理这些情况,以防他们尝试使用该情况。 Reports
模块。
因此,如果您确保正在处理所有情况 reports
被称为,然后您可以将其禁用。否则,最好不要。
其他提示
我不能告诉您如果您禁用模块会发生什么,但是我可以告诉您如何(可能)在不禁用它的情况下停止其处理影响。
它的所有处理成本都来自观察者。也许是Xeon的工作,但这在这里没有意义。如果您可以停止观察事件,则可以消除开销。
天真的方法是编辑config.xml并将其评论。不要那样做。
正确的方法是创建取决于mage_reports并具有config.xml的模块。在此定义前端标签,并在所有观察者中复制Mage_reports。然后将他们观察到的事件更改为一些永远不会被解雇的真实事件。然后在名为类型的观察者下添加标签,并具有禁用的值。
如果您在app.php中查看派遣事件,则可以看到它有效。您用残障的观察者覆盖他们。什么都没有被打电话,什么也没有破裂!