Magento的基本架构解析
Magento的基本架构解析
magento 是在Zend框架基础上建立起来的,这点保证了代码的安全性及稳定性。选择Zend的原因有很多,但是最基本的是因为 zend框架提供了面向对象的代码库并且有很好的团队支持。
通过这个框架,magento 主要围绕三个基本点建立:
- 灵活性:我们相信每一个解决方案都像它的商务支持一样是独一无二的。magento的代码可以无缝定制的。
- 可升级性:magento可方便的实行定制且不丧失升级的能力,因为从社区中获得核心代码和本地的自定义功能是分离的。
- 速度和安全:开发人员所使用的代码标准遵循了最佳做法,确保了程序运行的效率,并且提供了安全的在线网店程序。
这一章我们将介绍magento的关键概念和专业术语。即使你不是开发或设计magento,它们也将帮助你更好地建立自己的网上商店。
内核(Core)
magento内核包含了包括下载版本在内的所有功能。核心代码是magento核心团队开发或认证的模块集合。我们不推荐修改核心代码,因为那会 影响到magento升级的功能。
本地的(Local)
本地扩展(Local extensions)是magento的用户自定义功能,它仅存在于用户的本地拷贝。这些扩展将被放置在一个本地文件夹下,不会因升级内核代码而受到干 扰,而且可以跟社区支持的代码区分开来。他们是放在都一个目录下面的各种类型的扩展。
虽然说这些扩展的目录跟内核代码目录不同,但是他们还是跟内核代码一样运行的。
社区(Community)
社区贡献(Community contributions)是仅当下载时存放在社区文件夹下的一些应用。和本地扩展一样,通过跟内核代码区分开来,可以让magento网店店长可以在 享用扩展功能的同时不用为升级将来的magento版本而烦恼。
扩展(Extensions)
简单的说,扩展就如它的名字一样,扩展系统的功能。一个或者多个文件打包在一起实现扩展magento的一些功能。扩展中会有一些严格的限制和条件,以此禁止扩展修改magento的内核代码,确保任何扩展功能不会对以后用户升级magento造成麻烦。
扩展可以在后台的管理面板里安装,或者直接从magento Connect里下载。这些操作会在后面的文章里提到,Magneto扩展有三种类型。它们会存放在上面提到的两个目录上(Local和Community)
模块(Modules)
模块是一种延伸magento特点和功能的扩展。你也许从其他一些软件了解过模块这个概念,如果没有的话,一些模块的具体实例可以帮助你理解,例如:额外的支付网关,特殊产品促销工具等。
界面(Interface)
界面是一系列主题的集合,这些主题决定输出那些内容和控制网店前台的功能。一个界面可以后台管理面板指派到网站级别(Website- Level)、商店级别(Store-Level)或者网站商店级别(Website and Store Level)。我们将会在手册的后续文章中介绍界面,现在先让我们看看主题。
主题(Themes)
一个主题是由布局(Layout),模板(Template)和皮肤文件(skin文件是控制网店的显示效果的)组成。magento被设计成一次可以加载多个主题的功能,因此,通过两种类型来区分主题:
- 默认主题(Default Themes) – 每个界面都有一个主要的主题,称之为界面的默认主题。当你为你的网店指定一个界面的时候,系统就会自动地寻找这个默认主题,并按照这个主题来显示前台。为 了自定义网店设计,您可以修改这个主题, 或新建一个非默认主题,并加载它。默认的主题必须包含所有必要的布局,模板和皮肤,以确保网店顺利运行,作为主题等级系统中最低级的主题。
- 非默认主题(Non-Default Themes) – 非默认主题可以根据你的需要来包含或多或少的主题元素文件(Layout、Template和Skin)。这种类型的主题可以作为网店的临时季节性的更 改,而没有必要建立一个新的默认主题,通常可以通过创建的几张图片和更新一些的CSS来实现,例如:你可以轻松地将您的网店从平常的页面外观变成有圣诞节气氛的网店。
让我们来了解一些主题的组件:
- 布局(Layouts) – 布局是XML文件,它的作用是定义不同页面的区块(Block)结构,以及控制页面的META信息和网页的编码。布局文件是基于每个模块分布的,每一个模 块拥有它自己的布局文件。
- 模板(Templates) – 模板是PHTML文件,它包含(X)HTML标签和一些用来实现信息和功能显示的逻辑的PHP代码。
- 皮肤(Skins) – 皮肤是具体区块(Blocks)中的JavaScript、CSS和图片文件。你可能会问什么是区块?很好的问题,不过不用担心,magento已经为这个组件定义好了,看下面。
区块(Blocks)
区块是magento用来区分系统中一系列功能,并创建一个可见的、操作方式统一的模块化方式来管理这些功能的方式。有两种类型的Block,并且 它们相互工作来创建输出的内容:
- 结构区块(Structural Blocks) – 这些Blocks是设计成来创建网店页面的可视结构的。例如:头部(Header)、左边栏(Left Column)、主体内容(Main Column)和页眉(Footer)。
- 内容区块(Content Blocks) – 这些Blocks是在Structural Block中生成实际的内容的。它们是具体的每个功能的表现块,它们会部署Template Files到Structural Block中生成(X)HTML内容。例如:分类列表(Category List),小购物车(Mini Cart),产品标签(Product Tags)和产品列表(Product Listing)等等。
source: http://blog.aim-china.com/?p=108
Magento的基本架构解析的更多相关文章
- HDFS 架构解析
本文以 Hadoop 提供的分布式文件系统(HDFS)为例来进一步展开解析分布式存储服务架构设计的要点. 架构目标 任何一种软件框架或服务都是为了解决特定问题而产生的.还记得我们在 <分布式存储 ...
- Hadoop工程包架构解析
Hadoop源码解析 1 --- Hadoop工程包架构解析 1 Hadoop中各工程包依赖简述 Google的核心竞争技术是它的计算平台.Google的大牛们用了下面5篇文章,介绍了它们的计算 ...
- uC/OS-II内核架构解析(1)---嵌入式RTOS(转)
uC/OS-II内核架构解析(1)---嵌入式RTOS 1. 嵌入式系统基本模型 2. RTOS设计原则 采用各种算法和策略,始终保持系统行为的可预测性.即在任何情况下,在系统运行的任何时刻,OS的资 ...
- OpenStack最新版本Folsom架构解析
OpenStack最新版本Folsom架构解析摘要:OpenStack的第6版,版本代号为Folsom的最新版于今年九月底正式发布,Folsom将支持下一代软件定义网络(SDN)作为其核心组成部分.F ...
- ARM架构解析
ARM架构解析 (2014-11-23 21:56:53) 转载▼ 标签: francis_hao arm架构 arm核 soc 分类: MCU 先来谈一下ARM的发展史:1978年12月5日,物理学 ...
- 后端分布式系列:分布式存储-HDFS 架构解析
本文以 Hadoop 提供的分布式文件系统(HDFS)为例来进一步展开解析分布式存储服务架构设计的要点. 架构目标 任何一种软件框架或服务都是为了解决特定问题而产生的.还记得我们在 <分布式存储 ...
- PrismCDN 网络的架构解析,以及低延迟、低成本的奥秘
5 月 19.20 日,行业精英齐聚的 WebRTCon 2018 在上海举办.又拍云 PrismCDN 项目负责人凌建发在大会做了<又拍云低延时的 WebP2P 直播实践>的精彩分享. ...
- 深入HBase架构解析(二)【转】
转自:http://www.blogjava.net/DLevin/archive/2015/08/22/426950.html 前言 这是<深入HBase架构解析(一)>的续,不多废话, ...
- 从程序员到CTO的Java技术路线图 JAVA职业规划 JAVA职业发展路线图 系统后台框架图、前端工程师技能图 B2C电子商务基础系统架构解析
http://zz563143188.iteye.com/blog/1877266在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样 ...
随机推荐
- PHP运行模式
1.运行模式 关于PHP目前比较常见的五大运行模式: 1)CGI(通用网关接口 / Common Gateway Interface) 2)FastCGI(常驻型CGI / Long-Live CGI ...
- 初学微信小程序
最近微信推出了微信小程序,为此我学了几天,基本了解了组件及简单语法,但是今天我自己想要独立写一个demo时,忽然发现难道我的不是微信小程序的语法(我以前是iOS 开发,不用css),而是css样式的设 ...
- JS 生成GUID 方法
var Guid={NewGuid: function () { var guid = (this._G() + this._G() +"-"+ this._G() +" ...
- 如何预览将要上传的图片-使用H5的FileAPI
这篇将要说的东西已经不新鲜了. 参考资料: Reading files in JavaScript using the File APIs (鉴于作者在美国, 我姑且认为作者母语是英语, 当然链接中有 ...
- EntityFrame CodeFirst 自动生成表
来源:http://msdn.microsoft.com/zh-cn/data/jj193542 本视频和分步演练介绍通过 Code First 开发建立新数据库.这个方案包括建立不存在的数据库(Co ...
- bzoj4196 [Noi2015]软件包管理器 树链剖分+线段树
先把树剖分了(又是dfs1.dfs2),然后区间求和.区间覆盖即可 难得的1A好(shui)题 ——写了那么多题,终于有一道是1A的了,加上上一次连续交了几遍A的程序,我的状态莫名好看啊233 总结: ...
- 有限状态机(FSM)
在游戏开发中,AI是个永恒不变的话题,如果你要的AI只是很简单的一个逻辑 那么有限状态机是一个很好的解决方案,尽管在实际开发中,AI的设计并不是一个简单的逻辑, 如果用有限状态机,维护起来会非常麻烦, ...
- 堆排序 Heapsort
Prime + Heap 简直神了 时间优化好多,顺便就把Heapsort给撸了一发 具体看图 Heapsort利用完全二叉树+大(小)顶锥的结构每次将锥定元素和锥最末尾的元素交换 同时大(小)顶锥元 ...
- Flume_使用
案例一: source:hive.log channel: memory sink: logger输出 拷贝一份flume-conf.properties.template改名为hive-mem-l ...
- vmware 虚拟机中添加新网卡无配置文件
系统:centos 6/7 问题: 为虚拟机添加新网卡后,/etc/sysconfig/network-scripts/下无配置文件ifcfg-eth1 #ip addr //显示存在eth ...