Magento模块开发手册(二)magento的配置



Magento 的配置文件如同该系统的心脏一般。它负责从总体上配置所有被请求的模块,模型,类,模板文件等。它是绝大部分PHP程序员不会接触到的一块抽象层,虽然它增加了开发时间,混乱和挠头的形式,但是,所有这些都是值得的,因为Magento的配置文件允许你对系统的默认功能进行你无法想象的高度扩展。

为了学习Magento配置文件,我们将会在本章创建一个Magento模块,使其能够在浏览器中访问并显示Magento系统的配置文件。同时通过复制和粘贴下面的代码,它的价值在你自己的经历,以此来开始越来越舒服的事情,你在跟Magento打交道的同时,也学习了关键术语。

本篇文章中包括

  • 设置一个Magento模块的目录结构
  • 创建模块的配置文件
  • 我能在配置文件中找到什么有用信息?
  • 为什么配置文件对我如此重要?

 

设置magento模块结构

我们将要创建一个Magento的模块。模块是一组为了扩展系统的新功能,或覆盖核心系统行为的PHP与XML文件。这可能意味着增加额外的数据模型来跟踪销售信息,改变已存在的类的行为,或添加全新的功能。

值得一提的是,最基础的Magento系统的使用,你将使用相同的模块系统建成。如果你看一下

每个文件夹是通过Magento的团队建立了一个独立的模块。总之,这些模块形成你使用的社区购物车系统。你的模块应该放在以下文件夹中

“Packagename”应该是在你的code里面唯一的命名空间/包的字符串,这应该是你公司名称的非官方公约。我们可以随意命名并且这个名字不侵犯他人公司的名字

我们将用”Magentotutorial”作为我们的Packagename

现在,添加一个模块到你的magento系统,创建以下目录结构

你没有必要将所有这些文件夹都加到每一个模块,但现在设置他们全部是一个聪明的想法。

接下来,还有你需要创建两个文件。第一,config.xml文件,进去刚创建的文件夹etc。

第二个文件应在以下位置创建

本文件的命名约定是Packagename_Modulename.xml。

config.xml文件应包含以下内容的XML。不要太担心这些看不懂,我们将在下面会讲到

最后,Magentotutorial_Configviewer.xml应包含以下XML。

就是这样。您现在有一个光秃秃的骨头模块不会做任何事情,但Magento的都知道的。为了确保你所做的一切权利,请执行以下操作:

1. 清空Magento缓存
2. 在Magento管理,进入System->Configuration->Advanced
3. 在“Disable modules output”面板里验证,Magentotutorial_Configviewer将显示出来

恭喜你,你已经建立了你的第一个Magento的模块!

 

创建一个模块配置

当然,这个模块没有做任何事情。当我们完成后,我们的模块将

1. 检查是否有“showConfig”查询字符串变量的存在
2. 如果showConfig存在,显示我们的Magento的配置和停止正常执行
3. 检查是否有额外的查询字符串变量,showConfigFormat,这将让我们指定的文本或XML输出​​的存在。

首先,我们将在下面的<global>部分加入到我们的config.xml文件。

然后,创建一个文件

并添加一下代码

就是这样。再次清空Magento缓存,然后加载任意Magento的URL并加上showConfig=true的查询字串

 

你看到了什么?

你会看到一个巨大的XML文件。它描述了当前运行的Magento系统的整个状态。列出了所有模块,型号,类别,事件侦听器或几乎任何你能想到的。

例如,假设您在上面创建config.xml文件。如果您搜索的XML文件在浏览器中的文本Configviewer_Model_Observer,你会发现在你的类中列出。每个模块的config.xml文件由Magento解析,并包含在全局配置。

 

为什么如此重要?

目前为止可能有些难以理解,但是这个配置文件是你学习Magento系统的关键。你添加的任何所有模块都能够在这个配置文件中找到,任何时候当你需要请求核心系统的功能时,Magento都会使用到配置文件。

举个例子,作为一个MVC程序员,你经常会使用到一些助手类,使用如下方式实例化,

而Magento是抽象化了这个过程,并非使用PHP的类声明方式。在Magento中,上面的助手类对象会使用如下方式实例化,

通俗的说,这个静态方法将会

  • 在配置文件找查找<helpers />节点
  • 在<helpers />节点内,查找<sales />节点
  • 在<sales />节点内,再查找<class />节点
  • 实例化在<class />节点中找到的类

虽然这似乎是一个大量的工作,关键的优势是一直在寻找类名的配置文件中,我们可以重写Magento的核心功能,而无需更改或添加到核心代码。这种“元编程“的方式在PHP中使用的并不多,不过它可以让你明确的扩展你想扩展的任意一个地方。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值