第一章 – Magento强大的配置系统
2014-02-21 00:20
218 查看
深入理解Magento
作者:Alan Storm翻译:Hailong Zhang第一章 – Magento强大的配置系统
Magento的配置系统就像是Magento的心脏,支撑着Magento的运行。这套配置系统掌管着几乎所有“module/model /class/template/etc”。它把整个Magento系统抽象出来,用一个配置文件来描述。这里的“配置文件”并不是一个物理上存在的文 件,而是Magento根据当前的系统状态动态生成的一段XML。大多数的PHP开发者并不习惯于这样抽象层,因为它增加的编程的复杂性。但是这样的抽象 提供了无与伦比的灵活性,允许你覆盖几乎任何系统的默认行为。首先,让我们写一个简单的插件来看看这个所谓的“配置文件”长什么样。虽然我已经提供的现成的代码 ,但是还是建议你自己建立这个插件,把整个流程走一遍有助于你的理解。设置插件的目录结构
我们将要创建一个Magento的模块【译者注: Magento的插件不叫plug-in,叫module,翻译成模块】。Magento的模块由php和xml文件组成,目的是扩展或者覆盖系统的行 为,比如为订单增加数据模型,更改一个类的方法,或者增加一个全新的功能。【译者注:Magento自带的那些功能也都是基于模块的,比如用户注册,商品 展示,结账流程等等。Magento给我的感觉就是一切皆模块,和Eclipse的插件体系结构有点像】大多数Magento的系统模块的结构和我们将要构建的插件的结构是一样的。Magento的系统模块在以下目录app/code/core/Mage每一个子目录都是一个单独的模块。这些模块是由Magento官方开发的。我们安装完Magento以后,所使用的功能就是来自这些模块。我们自己创建的模块应该放在如下目录
app/code/local/Packagename“Packagename”应该是一个唯一的字符串,用来标识你的代码。通常人们使用公司名字作为Packagename,比如
app/code/local/Microsoft由于我在做我自己的Magento项目,我将使用我自己的域名“Alanstormdotcom”。 然后,我们要创建以下目录结构
app/code/local/Alanstormdotcom/Configviewer/Block
app/code/local/Alanstormdotcom/Configviewer/controllers
app/code/local/Alanstormdotcom/Configviewer/etc
app/code/local/Alanstormdotcom/Configviewer/Helper
app/code/local/Alanstormdotcom/Configviewer/Model
app/code/local/Alanstormdotcom/Configviewer/sql你的插件并不一定需要包含以上所有的目录,但是为了以后开发方便,我们还是在一开始就把目录创建好。接下来我们要创建两个文件,一个是config.xml,放在etc目录下面
app/code/local/Alanstormdotcom/Configviewer/etc/config.xml文件内容如下Xml代码
![](http://justcoding.iteye.com/images/icon_star.png)
app/etc/modules/Alanstormdotcom_Configviewer.xml第二个文件应该遵循如下命名规则“Packagename_Modulename.xml”,文件内容如下Xml代码
![](http://justcoding.iteye.com/images/icon_star.png)
创建模块逻辑
我们之前创建的模块不会做任何事情,下面我们来为这个模块加入逻辑1. 检查“showConfig”查询字符串是否存在2. 如果“showConfig”存在,那么检查“showConfigFormat”查询字符串是否存在3. 如果“showConfigFormat”存在,那么输出指定格式的配置信息,否则输出默认格式的配置信息4. 终止执行流程首先更改我们的config.xml文件Xml代码![](http://justcoding.iteye.com/images/icon_star.png)
Alanstormdotcom/Configviewer/Model/Observer.php输入以下内容Xml代码
![](http://justcoding.iteye.com/images/icon_star.png)
http://magento.example.com/?showConfig=true【译者注: 根据文中的配置,不难看出任何指向Magento的URL加了“?showConfig=true”以后,都会输出同样的内容,正常的执行流程会被终止。】
配置文件分析
打开上述URL,你应该看到一个巨大的XML文件。这个文件描述了当前Magento系统的状态。它列出了所有的模块,数据模型,类,事件,监听器等等。举个例子,如果你搜索如下字符串Configviewer_Model_Observer你会发现刚刚你创建的那个类被列出来了。Magento会解析每个模块的config.xml,并把它们包含在这个全局配置中。
这个配置文件有啥用?
到目前为止,我们所作的事情似乎没什么意义,但是这个配置文件却是理解Magento的关键因素。你创建的每一个模块都会被加到这个配置文件中,任 何时候,你需要调用一个系统功能的时候,Magento都会通过这个配置文件来查询相应的模块和功能。举个简单的例子,如果你懂MVC的话,你应该和 “helper class”之类概念的打过交道Php代码![](http://justcoding.iteye.com/images/icon_star.png)
![](http://justcoding.iteye.com/images/icon_star.png)
相关文章推荐
- 第一章 深入理解Magento - Magento强大的配置系统
- magento开发 -- 第一章 – Magento强大的配置系统
- 第一章 - Magento强大的配置系统
- 深入理解Magento – 第一章 – Magento强大的配置系统
- 第一章 – Magento强大的配置系统
- 深入理解Magento – 第一章 – Magento强大的配置系统
- 深入理解Magen 4000 to - 第一章 – Magento强大的配置系统
- Magento强大的配置系统(1)
- [Android Studio 权威教程]AS 中配置强大的版本管理系统(Git、SVN、等)
- 深入理解Magento的配置系统
- 第七章 – 自定义Magento系统配置1
- 第七章 – 自定义Magento系统配置2
- 功能强大的系统配置工具-- Siebel Tools
- 自定义Magento系统配置
- magento ----系统配置
- 自定义Magento系统配置
- 30分钟配置好-Puppet: 强大的中心化配置管理系统
- 为你的程序/系统提供强大的配置功能(选项配置文件的读写)
- [Android Studio 权威教程]AS 中配置强大的版本管理系统(Git、SVN、等)
- Android Studio AS 中配置强大的版本管理系统(Git、SVN、等)