magento模块创建前必须知道的知识

magento模块创建前必须知道的知识

ID:35478195

大小:59.13 KB

页数:3页

时间:2019-03-25

magento模块创建前必须知道的知识_第1页
magento模块创建前必须知道的知识_第2页
magento模块创建前必须知道的知识_第3页
资源描述:

《magento模块创建前必须知道的知识》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、magento模块创建前必须知道的知识对magento的模块创建前的相关认识及模块中的块,控制器,模型,辅助类,布局,配置文件,模板文件等相关知识的学习模块(module)是magento的核心。站点上的任何一个动作(action),无论是在前台和还是在后台的每一个操作都是通过模块来实现的。模块是可以视为一个容器,它可包含下面这儿项:设置(settings),数据库模式(databaseschema),呈现对象(renderingobject),辅助工具类(utilityhelpers),数据模型(datamodels)或动

2、作控制器(actioncontroller)o—个模块可以包含全部的这六项也可以只包含其屮的几项,甚至只有一项。所有的模块可以通过app/etc/modules/目录中XML配置系统來进行开关。每个模块也可以在自己模块目录下的etc子目录中创建一个XML文件来保存自己的配置信息。由于magento屮的一切都是模块而且模块木身又可以有自己的配置文件和数据库设置,这样就允许开发人员对magento进行扩展。模块结构下面是Catalog模块的目录结构,它包含了模块的所有项目(上面提到的六项):代码池(CodePools)magen

3、to中所有的模块被放在三个代码池中,它们分别是core,local,community。magento本身所附带的模块全部放在core代码池中。你自己开发的模块则就安装在local代码池中。至于community代码池则是用来安装第三方模块,但是这种想法也有可能会过时,因为模块可以安装在Icoal代码池,也可以安装在community代码池,而并不是必须那样划分。包(Package)所有的模块都不是直接保存代码池目录中,而是保存在包目录(代码池的子目录)中。引入包概念的主要目的是类命名的统一和一贯性。所有的magento模块

4、是保存在core代码池中的Mage包中。所以,所有的magento类名都以Mage_为前缀。而对我们自己开发的代码我们应该在Icoal代码池屮创建一个包,比如以你公司的名字作为包名,这样就可以避免类名的重复的可能性。模型(Model)模型可以说是magento的肌肉。它主要是用来从数据库提取数据到程序中。数据的输出,呈现是通过块(Block)來实现的。也就是说它主要是用來负责数据库操作的。事实上在任何一个编程环境中,模型都是被用來识别处理数据域的工作,也就是说它在数据组的定义和其它相关数据组Z间起到联系的作用。为了说明前面模

5、型化的理论,我们举个例子来说明一下:在创建一个购物车系统时,我们有一个Product类。每个产品需要一个指定一个图片。问题是图片如何模型化?只是简单的给Product类一个$image_url属性?还是创建一个lmage_Gallery类,然后在两个类之间创建一个接口,如getDefaultlmage。最终的模型类取决于你决定如何实现数据之间的操作。块(Block)块是magento模板模式背后的大脑。所有的块形成一套嵌套的对象集协调模型和模板文件。每个块对应一个模板文件——模板文件是以.phtml为扩展名的html和php

6、代码混合的文件。也就是说对于在magento上的任何一个请求,其实你在处理的是一系列的块对象和相应数量的模板文件。magento的模板系统就是php语言本身。它并没有重新实现一个模板系统,所以renderView()方法也只不过是简单的调用include来包含相关的模板文件。也就是说,如果你想使用某个模板引繁,而不使用单纯的php语言,你可以通过修改Mage_Core_Block_Template类的renderView方法来调用你所选择的模板系统的呈现函数。控制器(Controller)控制器是magento所有业务逻辑的

7、起点。业务逻辑是指业务理论中的规则。至于magento业务逻辑和域逻辑(数据处理指令)的区分是不太明显的。有的人认为检查必须栏位和可选栏位就是属于业务逻辑,而有人认为那应该屈于域逻辑。magento屮的大多数的逻辑的是在模型屮实现的。控制器类继承了Mage_Core_Controller_Varien_Action基类,而这个基类是Zend框架的Zend_Controller_Action类的修改版本。其中比较重要的方法包括:Idispatch($action)lpreDispatch();lpostDispatch()其它

8、的方法只是简单的利用URL将指令传递给系统的其它关键部分。Dispatch()方法启动当前请求的所有业务逻辑,Saction的值是根据URL决定的,默认通常是index。Dispatch方法首先调用preDispatch方法,而这个方法则触发下面这几个事件,你可以侦听这几个事件并添加处理代

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。