最新消息:欢迎光临!

精简magento

web开发 findever 1779浏览 0评论

测试工具:pagespeed,pingdom,firebug 等。

注:如若尝试,请不要使用正在使用中的系统测试.下面所有提到的方法,都正在测试改进中.本人不对任何测试而引发的问题负责,不回答相关的问题.只是记录而以.

magento功能很强,但是对于大部分功能,我们基本上不用,比如很多国外的支付模块,运费模块.不要只是简单的在后台进行关闭.我使用magneto最新版的代码为基础,试图定制精简出一个精简的版本.下面是我的步骤:

1.从后台关闭如下模块,保存后清空缓存测试下各个功能,目前没有发现问题

Mage_AdminNotification
Mage_Api
Mage_Bundle
Mage_Centinel
Mage_Downloadable
Mage_GiftMessage

Mage_Tax

(上述两个模块,虽然catalog模块不依赖于这两个模块,也就是说前台没有问题,但是在编辑产品时会用到。所以可以考虑在产品上线后,关闭,当然如果你有耐心,可以修改后台的模板,删除掉对这两个模块的block及相关model的引用。)
Mage_GoogleBase
Mage_GoogleCheckout
Mage_GoogleOptimizer
Mage_Install
Mage_PaypalUk

Mage_Poll

Mage_Usa

Phoenix_Moneybookers

2.修改模块配置文件,彻底关闭模块,这样的作用可不只是说减少了对这些文件的分析,同时这些模块对应的layout文件,也不会被加载.

进入app/etc/modules目录,删除如下模块的配置文件

Mage_Api.xml,Mage_Bundle.xml,Mage_Centinel.xml,Mage_Downloadable.xml,Mage_Weee.xml,Phoenix_Moneybookers.xml

编辑Mage_All.xml,彻底关闭如此这些模块:

Mage_AdminNotification
Mage_Api
Mage_Bundle
Mage_Centinel
Mage_Downloadable
Mage_GiftMessage
Mage_GoogleBase
Mage_GoogleCheckout
Mage_GoogleOptimizer
Mage_Install
Mage_PaypalUk

Mage_Poll

Mage_Usa

修改app/etc/local.xml ,禁用local code pool中的模块.通常没用到.

清除缓存后,测试各项功能,正常.

3.清除page.xml,关于js文件,我删除了大部分,最后只保留了






清除了:







同时还需要在相应的模板文件(涉及到head.phtml,主模板文件[1column.pthml,2column-left.phtml…]),删除掉对traslate和global notice的调用。另外,由于magento的mini search form block的ajax search autocomplete依赖于scriptaculous的control.js,所以如果去除掉这个文件,则就没有了ajax search autocomplte功能,同时还需要清除其它对应的模板文件。我是觉得这个功能基本上不是很重要。注:根据自己的实际情况,清除相关的layout设置。另外,其实也可以考虑从CDN(如google)上加载prototype.js等相关文件。以获得更好的速度。比如,magento 1.4.1.1中,使用的prototype.js的版本是1.6.0.3。可以删除掉调用,而直接在head.phtml中加入:

其它的可清除BLOCK:

[header.phtml]

< ?php echo $this->getChildHtml(‘store_language’) ?>

[footer.phtml]

< ?php echo $this->getChildHtml(‘store_switcher’) ?>

4.清除catalog模块无用的block.当然这边是指大部分通常不会用到的功能.magento产品有几种类型,而通常我们用的是simple,所以,可以清除掉所有其它的产品类型相关的layout设置.(清除掉所有configurable,grouped,virtul)

5.清除无用的支付模块。这个其它之前的步骤中有做了一些,比如清除google checkout模块。这个步骤在最新版中是不会有问题的,但是在从旧版升级上来的版本中就存在问题。如果只是单纯的关闭掉,则前台的onepage checkout会出现:

Fatal error : Call to a member function setStore() on a non-object in app/code/core/Mage/Payment/Helper/Data.php on line 72

解决这个问题倒也不难。进数据库中的core_config_data表删除掉相应的配置选项,清空缓存就可以了。

注:我是想到什么就测试实施,做到哪一步就记录

6.magento中最重要最核心用的最多的恐怕要数产品模块,其中包括分类列表页和产品查看页。列表页,我觉得可以根据实际考虑是否取消掉list/grid模式的一种,只保留一种,每页显示产品数只留两个选项,一个是每页N个,一个是显示全部。甚至可以不要提这个工具栏。我不知道减少一个block省掉的时间是不是肉眼能看的见,但是肯定会减少,至少会减少发多不必要的调用。何况是清除掉多个block.

末完…

7.我不使用multiple shipping addr.彻底关闭掉所有相关的BLOCK,清除LAYOUT和模板文件.

转自:http://blog.csdn.net/xinhaozheng/article/details/5909782

转载请注明:Findever » 精简magento

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址