《Magento-中文开发教程》由会员分享,可在线阅读,更多相关《Magento-中文开发教程(96页珍藏版)》请在金锄头文库上搜索。
1、Magento中文开发教程前言本文主要收集自:精東博客)http:/ 1.4.0.1版本编写,前七章的原作者是Alan Storm,参考了Hailong Zhang的翻译,添加了自己的理解,修改而来。后面的内容大多是本人亲身经验的总结。难免笔误,欢迎大家指出错误。深入理解Magento第一章 Magento强大的配置系统 深入理解Magento第二章 Magento请求分发与控制器 深入理解Magento第三章 布局,块和模板 深入理解Magento第四章 模型和ORM基础 深入理解Magento第五章 Magento资源配置 深入理解Magento第六章 高级Magento模型 深入理解Ma
2、gento第七章 自定义Magento系统配置 深入理解Magento第八章 深入自定义Magento系统配置(未完成) 深入理解Magento第九章 修改、扩展、重写Magento代码 深入理解Magento第十章 数据操作&数据收集器 在Magento教程中用到的模块Configviewer Layoutviewer Helloworld with Custom System Config 其他与Magento开发相关的文章简单的EAV数据查询 清除缓存的几种方法 通过命令行来升级Magento MAGENTO数据转移 如何使用和设置Cookie&Session Magento中我的账户访
3、问权限判断 Magento时间/时区问题 重新安装 Magento 模块 Magnto获取当前店铺和店铺配置的方法 Magento如何重写或新建后台的页面 深入理解Magento 第一章 Magento强大的配置系统Magento的配置系统就像是Magento的心脏,支撑着Magento的运行。这套配置系统掌管着几乎所有“module/model/class/template/etc”。它把整个Magento系统抽象出来,用一个配置文件来描述。这里的“配置文件”并不是一个物理上存在的文件,而是Magento根据当前的系统状态动态生成的一段XML。大多数的PHP开发者并不习惯于这样抽象层,因为它
4、增加的编程的复杂性。但是这样的抽象提供了无与伦比的灵活性,允许你覆盖几乎任何系统的默认行为。首先,让我们写一个简单的插件来看看这个所谓的“配置文件”长什么样。虽然我已经提供的现成的代码,但是还是建议你自己建立这个插件,把整个流程走一遍有助于你的理解。设置插件的目录结构我们将要创建一个Magento的模块【注: Magento的插件不叫plug-in,叫module,翻译成模块】。Magento的模块由php和xml文件组成,目的是扩展或者覆盖系统的行为,比如为订单增加数据模型,更改一个类的方法,或者增加一个全新的功能。【注:Magento自带的那些功能也都是基于模块的,比如用户注册,商品展示,
5、结账流程等等。Magento给我的感觉就是一切皆模块,和Eclipse的插件体系结构有点像】大多数Magento的系统模块的结构和我们将要构建的插件的结构是一样的。Magento的系统模块在以下目录app/code/core/Mage每一个子目录都是一个单独的模块。这些模块是由Magento官方开发的。我们安装完Magento以后,所使用的功能就是来自这些模块。我们自己创建的模块应该放在如下目录app/code/local/Packagename“Packagename”应该是一个唯一的字符串,用来标识你的代码。通常人们使用公司名字作为Packagename,比如app/code/local/
6、Microsoft由于我在做我自己的Magento项目,我将使用我自己的项目名“App”。 然后,我们要创建以下目录结构app/code/local/App/Configviewer/Blockapp/code/local/App/Configviewer/controllersapp/code/local/App/Configviewer/etcapp/code/local/App/Configviewer/Helperapp/code/local/App/Configviewer/Modelapp/code/local/App/Configviewer/sql你的插件并不一定需要包含以上所
7、有的目录,但是为了以后开发方便,我们还是在一开始就把目录创建好。接下来我们要创建两个文件,一个是config.xml,放在etc目录下面app/code/local/App/Configviewer/etc/config.xml文件内容如下 0.1.0 第二个文件需要在如下位置创建app/etc/modules/App_Configviewer.xml第二个文件应该遵循如下命名规则“Packagename_Modulename.xml”,文件内容如下 true local 我们先不管这些文件是干什么的,以后会解释。建立好这两个文件以后,你的模块的骨架就已经完成了。Magento已经知道你的模块
8、存在,但是现在你的模块不会做任何事情。我们来确认一下Magento确实装载了你的模块清空Magento缓存 在后台管理界面,进入 System-Configuration-Advanced 展开“Disable Modules Output” 确认“App_Configviewer”显示出来了 如果你看到“App_Configviewer”,那么恭喜你,你已经成功创建了你第一个Magento模块!创建模块逻辑我们之前创建的模块不会做任何事情,下面我们来为这个模块加入逻辑1. 检查“showConfig”查询字符串是否存在2. 如果“showConfig”存在,那么检查“showConfigFo
9、rmat”查询字符串是否存在3. 如果“showConfigFormat”存在,那么输出指定格式的配置信息,否则输出默认格式的配置信息4. 终止执行流程首先更改我们的config.xml文件 0.1.0 singleton App_Configviewer_Model_Observer checkForConfigRequest 然后创建如下文件App/Configviewer/Model/Observer.php输入以下内容request = $observer-getEvent ()-getData ( front )-getRequest ();if ($this-request-sel
10、f:FLAG_SHOW_CONFIG = true) $this-setHeader ();$this-outputConfig ();private function setHeader() $format = isset ( $this-request-self:FLAG_SHOW_CONFIG_FORMAT ) ? $this-request-self:FLAG_SHOW_CONFIG_FORMAT : xml;switch ($format) case text :header ( Content-Type: text/plain );break;default :header ( Content-Type: text/xml );private function outputConfig() die ( Mage:app ()-getConfig ()-getNode ()-asXML () );?好了,代码编辑结束。清空你的Magento缓存,输入如下URLhttp:/ 根据文中的配置,不难看出任何指向Magento的URL加了“?showConfig=true”以后,都会输出同样的内容,正常的执行流程会被终止。】配置文件分析打开上述URL,你应该看到一个巨大