文档详情

magento教程.doc

发布:2016-08-14约12.96万字共103页下载文档
文本预览下载声明
magento开发 magneto相对来说是一个比较复杂的系统,如果想做magento二次开发程序员,应该先从模板制作开始,摸清magneto的结构,magneto模板制作的过程中,对magento的模板结构摸清,然后熟悉magneto的Mage包下的文件的作用,细细,细致的看,研究,然后把他们给穿起来分析,最后,分析magneto的初始化过程,因为只有懂了magento的初始化过程,才能对magento的执行过程有一个比较好的了解,然后在magento使用的过程中,遇到问题才能更好的定位,当然,有时候magento会有一些莫名其妙的错误,不要认为magneto有问题(当然magneto也是有很多bug的),就像上次使用过程中,后台的分类树点击后,不会分类的信息,最后找了一下午,终于找出来了,一个家伙把模板备份,然后备份的模板包名字中出现中文,在后台都是可以选定模板的,magento是UTF-8编码的,所以出现乱码,才出现的莫名的错误,反正我遇到的绝大多数的莫名其妙的错误都是magento使用不当造成的,那些不喜欢magento的,说magento不好的家伙,我一直不赞同,我认为他们不了解magento才这么说,也就是他们害怕magento,懦弱的表现,擦,magento排名世界第一的电子商务系统足以说明,magento是一个优秀的电子商务开源系统,说magento垃圾的人见鬼去吧! Magento模块介绍 ??????????????? magento的module(模块) Magento模块结构,是Mgento的核心组成部分,Magento的每一个请求都要执行这里面的东西,app/code/core/Mage下面放的是magento的核心代码,magento的模块都在这里面,我们自己写的一般放在app/code/core/community或者app/code/core/local下面, 参看下面的目录结构和相关的代码中定义的类名: - App/ |- code/ | |- community/ | |- core/ | | |- Mage/ | | |- Zend/ | |- local/ |- design/ |- etc/ 那么Magento模块是由那些部分组成呢,下面详细介绍: Magento是由下面几部分组成 Block?? ??? ? Etc?????? 配置文件 Sql?? ??? ??? ?数据库相关的sql文件 Helper?? ??? ?辅助类 Controller?? ?控制类 Contrillers?? ?控制类 Model?? ??? ?模型 下面要引入几个概念: 包(Package) 所有的模块是放在代码池中都是先建立一个包,然后在写模块,这样可以保持一定的同义和连贯,同时也避免了类名的重复性,易于magento工程结构的搭建。 模型(Model) magento的数据库操作一般放在这里,可以说是magneto的数据层,比作为magento的肌肉,block一般所需的数据库操作都是从这里取数据,在请求执行过程中负责底层的数据工作。 块(Block) 一个block和一个phtml文件对应,,phtml文件中所需的数据是通过block文件给予的,有点像smarty的结构,将业务逻辑和前台显示分离,这样可以让设计师和程序员的工作分开,从这里看,Magento的一个请求,实际上是在处于模板文件和他所对应的block这个对象, 当然,Magento的模板系统是用PHP文件编写的。所以renderView()方法也只不过是简单的调用include来包含相关的模板文件。也就是说,如果你想使用 某个模板引擎,你可以通过修改Mage_Core_Block_Template类的renderView方法去调用你所选择的模板系统的呈现函数。 控制器(Controller) 控制器是Magento所有业务逻辑的起点。业务逻辑是指业务理论中的规则。至于 Magento业务逻辑和域逻辑(数据处理指令)的区分是不太明显的。有的人认为检查必须栏位和可选栏位就是属于业务逻辑,而有人认为那应该属于域逻辑。Magento中的大多数的逻辑的是在模型中实现的。 控制器类继承了Mage_Core_Controller_Varien_Action基类,而这个基类是Zend框架的Zend_Controller_Action类的修改版本。其中比较重要的方法包括: l? dispatch($action) l? preDispatch(); l? postDispatch() 辅助类(Helper) 对于一些写在block和model不合适的类,就写在了helper中 比较有用 的两个类就是?? ? l? __(两个下划线)
显示全部
相似文档