国际电子商务技术 & Magento开发公司

Maishen technologies

Welcome visitor! You canlogin orcreate an account.

热线:+86-0532-58973093

麦神科技有限公司
Mygod Technologies

官方认证开发工程师

Magento模块介绍

2011年5月11日星期三 Asia/Shanghai下午6:11:22

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  __(两个下划线)
l  htmlEscape
双下划线方法是翻译接口,用来实现magento的翻译功能,也就是你把翻译文件包写好后,当你选定那个store的时候,他就会使用那个store中的翻译文件,然后就会呈现那种语言,对于这个函数,它几乎被所有的对象封装使用,也就是说你几乎可以在代码中的任何地方调用这个方法来翻译一个字符串。
htmlEscape只是简 单封装了htmlspecialchars函数,不过它也可以接收一个数组并对数组中的每个元素应用htmlspecialchars函数。

配置文件(config files)
Magento的牛逼之处就是在配置文件,配置文件保存在etc这个目录下,比较有用的有三个配置文件,config.xml,system.xml,convert.xml,其实另外两个文件的东西都可以写在config文件中,然后通过标签标示,但是为了更好的明确,还是分开比较好,一般说来,config.xml是直接影响你模块的行为,其它的两个文件system.xml和convert.xml会自动为你在后台配置页面创建设置表单。
组后,所有的配置文件在magento初始化的时候会被组合在一起,这就是说,可以通过配置文件覆盖或者重写模块的任何位置的模块的配置,由此,体现出magento强大的功能

到此magento模块的功能介绍完毕,这里只是介绍了一个大概,后续的工作需要大量的使用来更好的了解magneto的模块机制,学习magneto是一个体力活!

转载请注明链接地址:MagentoWater

标签:

0 Comments | Posted in magento结构 By Terry

Magento的安装

2011年5月10日星期二 Asia/Shanghai下午10:45:46

magento的安装

Read More
0 Comments | Posted in Magento安装 By terry water

Magento请求分发与控制器

2011年5月10日星期二 Asia/Shanghai下午10:35:47

Magento请求分发与控制器

Magento使用的是MVC结构,模型-试图-控制器结构,这样更好的实现显示逻辑和数据,业务逻辑的分离,更好的适合开发!

下面为传统的mvc结构

    URL请求被一个PHP文件拦截,这个文件通常称为前端控制器(Front Controller)
    这个PHP文件分析这个URL,获得一个执行控制器(Action Controller)的名字和一个执行方法(Action Method)的名字,这个过程称为路由(Routing)
    实例化#2获得的执行控制器
    调用执行控制器的执行方法
    执行方法中处理业务逻辑,比如获取数据等
    执行控制器负责把数据传递给显示逻辑,用于层面之间数据的交换
    显示逻辑生成HTML,为显示层!

    前端控制器仍然以全局的方式运行
    基于配置的惯例导致了系统不够模块化

        URL Routing不够灵活
        控制器往往和视图绑定
        更改默认设置往往导致大量的重构

Magento的mvc结构略显不同,为下面的方式:

    URL请求被一个PHP拦截
    这个PHP文件实例化一个Magento对象
    Magento对象实例化前端控制器
    前端控制器实例化全局配置中指定的路由对象,可以是多个
    路由对象会逐个与请求URL匹配
    如果发现匹配,那么可以获得一个执行控制器和一个执行方法的名字
    实例化#6获得的执行控制器,并调用相应的执行方法
    执行方法中处理业务逻辑,模型数据
    控制器实例化布局对象(Layout)
    布局对象根据请求的参数,系统配置创建一个块对象(Block)列表,并实例化
    布局对象会调用块对象的output方法生成HTML。这是一个递归的过程,因为块对象可以嵌套块对象
    每一个块对象都和一个模板文件(Template File)对应。块对象包含了显示逻辑,模板文件包含了HTML和PHP输出代码
    块对象直接从模型那里获得数据,换句话说,在Magento的MVC架构中,控制器并不直接把数据传给视图

转载标明出处:magentowater

0 Comments | Posted in magento原理 By terry water

magento的初始化

2011年5月10日星期二 Asia/Shanghai下午10:25:39

magento的初始化工作

Read More
0 Comments | Posted in magneto学习 By Terry

magento免费插件

2011年5月10日星期二 Asia/Shanghai下午10:04:46

magento插件有很多免费的,下面的是一些经常用到magento插件!

Read More
0 Comments | Posted in magento免费插件 By terry water
 
  • Mygod Technologies
  • 麦神科技有限公司
  • 香港中路8号
  • 中铁青岛中心大厦A3001
  • 市南区, 青岛, 266000
  • 电话: 0532-5897-3093

订阅我们的最新消息。

我们将严格尊重您的隐私。

关注我们的微信
获取外贸电子商务最新资讯;跨境推广最新策略;电子商务网站技术最新趋势。

2018 Mygod Technologies. 保留所有权. Privacy Policy