Magento(社区版)自带模块解析以及在国内的使用建议一

简介:

本章开始逐个解析Magento1自带的模块,根据模块复杂度和重要性的不同,描述的方式也会有所区别,有些仅使用文字,有些会配上截图。

1Admin

如字面意思,Admin模块是跟后台管理员相关的,具体来说,主要就是后台用户(admin_user表)和后台用户的权限管理(admin_role和admin_rule表)。到1.9.2.3版本,

出于安全考虑新增了permission_variable和permission_block功能,这个就不细讲了,详见1.9.2.3的release-notes。

这里扯远一下,Magento的权限功能是基于ACL模型的,市面上还有另外一个应用广泛的访问控制模型叫RBAC。虽然ACL一般情况下也可以满足Magento后台管理的需要,但结合以往实际工作中碰到的情况来说,RBAC模型可能更符合一个电商网站后台管理的需求,比如出现“客服主管”和“普通客服”这种层级结构的权限分布要求时。

毫无疑问,这个模块是必须开启的,后台的基石。

2、AdminNotification 

字面意思是后台的通知,这个模块的实际作用差不多也就是这个意思。通知的展示形式分钟两种,一种是通栏方式显示在后台主菜单栏下面,另一种方式是登录后台时以弹窗方式出现。



通知的内容大概有以下几种:网站运行状况(比如缓存过期,索引未更新等等),Magento官方推送的通知(比如有新版本,官方要举办什么活动等等),安装的第三方插件所属公司推送的信息(比如安装的插件有新版本,或者如上图这类推销打折信息)。

AdminNotification模块理论上可以关闭,不会影响网站前后台的正常运行。关闭之后上面提到的这些通知你将不会再收到,避免了骚扰同时也失去了得到有价值通知的功能,当然失去通知也不会有多大影响,比如关注Magento的人自己本身就会时不时关注官方是否有新版本发布了。

所以,这个模块关闭与否,可选。

3、Adminhtml

Adminhtml是一个庞大无比的模块,整个目录下有超过500个文件夹和超过1000个文件。虽然如此庞大,这个模块的作用却很好解释,那就是几乎整个后台所展示的内容(不算第三方插件)都由Adminhtml来控制。

这里有一个代码结构上的疑问,Magento把功能按模块划分的做法是受大部分人认同的,对降低整个系统的耦合度相当有益。唯独Adminhtml模块把所有功能的后台管理部分集合在了一起,把这个模块变成了一个庞然大物。理论上Magento可以把不同功能块的后台管理的代码写到各自的模块目录下面,比如商品后台管理的代码可以写到Catalog模块里去,这样子看上去系统的模块化就更彻底了(比如第三方插件如果有后台管理的部分,后台的代码自然是写在自己模块的目录下的)。

Magento官方这么做也许有自己的考量,至少对于后台的修改和二次开发来说,可以在一个模块里找到所有后台源码也是一种便利。

Adminhtml模块当然是必须开启的,不开就没后台了。

4、Api

Magento的第一种类型的接口模块(早期的版本只有这一种类型),提供XML-RPC和SOAP两种接口协议,这两种协议一脉相承,对于已经封装过的Magento来说,新增一个接口只需要开发一套代码,就可以同时支持XML-RPC和SOAP两种协议。

  SOAP是一套虽然已经不年轻,但依然被广泛使用的接口协议,基本上所有流行的编程语言都有现成的支持SOAP的类库。

  除了对协议的封装,Api这个模块提供了基于ACL模型的接口资源权限分配,可以通过后台来按需指定不同接口用户拥有不同的访问权限(比如A用户只允许访问1、2、3接口函数,B用户只允许访问4、5、6接口函数),这个对网站的信息数据安全相当有好处。

  Api模块不是必须开启的,如果没有对外开放接口的需求的话。当然,实际运作中的Magento网站,应该很大比例都会有跟其他系统对接的需求,这个时候,经过系统底层的封装之后,在Magento上开发新接口还是很方便的。

 

5、Api2

Magento的第种类型的接口模块(后期版本新增的,提供REST风格的Api接口支持。

与Api模块类似,Api2模块同样对接口进行了封装,以及同样提供了通过后台进行接口资源权限分配。

        针对REST风格的Api的授权,Magento采用流行的oAuth协议来实现,这一点在系统里是通过另一个模块来配合的,这个模块的名字就叫做Oauth。

同样道理,Api2模块开启与否是可选的,取决于你是否会需要用到系统对接。Api2模块与Api模块之间没有相互依赖关系,可以自由选择单独用、一起用或者两个模块都不用。

6Authorizenet

      authorizenet模块非常好理解,就是一个美国本土的支付网关(类似paypal,详见http://www.authorize.net/)。不太清楚authorizenet在美国的流行度如何,肯定没有paypal流行。如果是做国内中文站的话,就肯定用不到这个模块,果断关闭吧。

7、Backup

Backup模块在后台提供了可视化界面用于给网站做备份,可以选择备份(及还原)网站文件或者备份数据库等等。备份生成的文件会放置在var/backups目录下。

常见的网站备份操作,一般是由运维人员通过在服务器上通过计划脚本来操作的。虽然Magento的Backup模块也提供了通过系统的cron机制来定时备份数据的功能,但能直接通过后台操作就能备份(特别是还原)网站,感觉上会不太安全(虽然也可以通过后台权限来控制一般后台用户无权操作),我个人是不太推荐这种方式的。

如果你不需要备份网站,或者如上所言把备份网站交由运维来操作了,那就把这个Backup模块关了吧。

8、Bundle

Magento原生提供了6种商品类型,捆绑商品(Bundle Product)是其中一种。6种类型里,Bundle Product和Downloadable Product是各自独立一个模块控制的,其他4个类型都在Catalog模块里面。

Bundle Product另一种类型Grouped Products类似都提供了组合打包购买商品的功能,不同之处在于Bundle Product提供了更复杂的组合方式,以及自由设置组合后商品价格(比如上衣加裤子组合买比单买优惠20等等)。详见:Magento grouped vs bundle products

捆绑商品的功能在蛮多场景还是用得到的,当然这个也看网站具体卖的商品类型(衣服还是食品)以及销售方式。这里有一个问题是,捆绑商品功能所能捆绑的对象只能是简单商品(Simple Product),而实际应用中好像有许多把几个Configurable Product捆绑卖的需求。PS:好像有第三方插件可以满足这个需求
如果确实不需要或者暂时用不到这个功能,可以把Bundle模块关闭(这个时候就体现出把捆绑商品单独拎出来做成一个模块的好处了大笑)。

9、 Captcha
验证码模块,可以用于后台的登录和找回密码。

原生情况下只能用于后台(不排除二次开发之后用于前台)。关于这个模块开启与否的建议,我不太清楚老外的审美是咋样的,至少在国内来说,跟国内网站上常见的验证码相比,Magento的这套验证码生成的图真的是有点丑。所以如果不用这个功能的话,就把Captcha模块关了。如果确实需要用到验证码(我指的是国内),建议找一个更符合中国人审美的验证码类库,自己基于类库在Magento上做验证码的功能。

10、 Catalog
电商几大基本组成元素之一的“商品”(还有用户和订单),主要就由Catalog模块来控制。稍微具体来说,这个模块管理着包括分类,商品,商品属性等内容以及前台大部分跟商品展示相关的控制代码。对于Magento系统来说,这是一个核心模块,也是所有Magento用户最熟悉的几个模块之一。我这里只是对模块的概述,所以针对 Catalog模块反而好像没有什么需要特别拎出来讲一下的东西了。
Catalog模块当然是必须开启的。

以上是本系列的第一篇内容,简单总结下上面10个模块,
其中Admin,Adminhtml,Catalog三个模块是必须开启的(网站正常运行的基础),
AdminNotification,Api,Api2,Bundle是可以根据需求自选要不要开启的,
Authorizenet,Backup和Captcha我的建议是关闭(针对做国内中文站)。
之前有提过本系列是一个概述,所以对大部分模块的描述都是走马观花式的,因为每个模块要讲清楚的话都可以单独写成一篇文章(甚至多篇文章)。上面十个模块的描述都是基于我的个人理解,如果有描述不正确的地方,欢迎指正。


目录
相关文章
|
25天前
|
存储 缓存 算法
Python中collections模块的deque双端队列:深入解析与应用
在Python的`collections`模块中,`deque`(双端队列)是一个线程安全、快速添加和删除元素的双端队列数据类型。它支持从队列的两端添加和弹出元素,提供了比列表更高的效率,特别是在处理大型数据集时。本文将详细解析`deque`的原理、使用方法以及它在各种场景中的应用。
|
2天前
|
JavaScript IDE 编译器
TypeScript中模块路径解析与配置:深入剖析与最佳实践
【4月更文挑战第23天】本文深入探讨了TypeScript中模块路径解析的原理与配置优化,包括相对路径、Node.js模块解析和路径别名。通过配置`baseUrl`、`paths`、`rootDirs`以及避免裸模块名,可以提升开发效率和代码质量。建议使用路径别名增强代码可读性,保持路径结构一致性,并利用IDE插件辅助开发。正确配置能有效降低维护成本,构建高效可维护的代码库。
|
22天前
|
数据挖掘
深入解析ERP系统的人力资源管理模块
深入解析ERP系统的人力资源管理模块
23 1
|
22天前
|
监控 BI
财务智慧:全面解析ERP系统的财务管理模块
财务智慧:全面解析ERP系统的财务管理模块
20 0
|
25天前
|
数据采集 数据挖掘 Python
Python中collections模块的Counter计数器:深入解析与应用
在Python的`collections`模块中,`Counter`是一个强大且实用的工具,它主要用于计数可哈希对象。无论是统计单词出现的频率,还是分析数据集中元素的分布情况,`Counter`都能提供快速且直观的结果。本文将深入解析`Counter`计数器的原理、用法以及它在实际应用中的价值。
|
1月前
|
XML 数据采集 前端开发
深入解析网页结构解析模块BeautifulSoup
深入解析网页结构解析模块BeautifulSoup
25 0
|
3月前
|
JSON JavaScript 前端开发
C++ Qt开发:运用QJSON模块解析数据
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QJson`组件的实现对JSON文本的灵活解析功能。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,也易于机器解析和生成。该格式是基于JavaScript语言的一个子集,但它是一种独立于语言的数据格式,因此可以在许多不同的编程语言中使用。
34 0
C++ Qt开发:运用QJSON模块解析数据
|
8天前
yolo-world 源码解析(六)(2)
yolo-world 源码解析(六)
18 0
|
8天前
yolo-world 源码解析(六)(1)
yolo-world 源码解析(六)
12 0
|
8天前
yolo-world 源码解析(五)(4)
yolo-world 源码解析(五)
21 0

推荐镜像

更多