Magento架构分析,Magento MVC 设计分析

分类:Magento 标签:Magento MVCMagento架构 669人浏览

Magento 采用类似 JAVA的架构,其扩展与稳定性非常突出,也是在开源电商平台最优秀的,下面我大概分析一下其内部架构

Magento系统请求响应流程图

下面是具体请求步骤分析

  1. 用户向浏览器发出请求(高级话题:What really happens when you navigate to a URL)
  2. 浏览器向magento所在的服务器发出请求,magento的Controllers捕捉该请求并分发(实例:Magento Controller Dispatch and Hello World )
  3. Controller使用Oject Models,此时Magento的Model开始config(加载config.xml,system.xml,layout下的*.xml 等所有配置文件)(高级话题:config.xml 配置参数说明http://www.magentocommerce.com/wiki/development/reference/module_config.xml  和 system.xml 实例 http://alanstorm.com/custom_magento_system_configuration )
  4. Object Model 返回相应的数据(大部分是系统配置信息请研究Class Mage_Core_Model_Config和相关的类)
  5. Controller 根据layout下的*.xml的配置信息使用相应的Layouts
  6. Layout 使用Blocks(Blocks是Layout的骨架)
  7. Blocks使用Object Model(哈哈,这步是天经地义的,不通过Model使用数据库等相关的资源,Blocks就是巧妇难为无米之炊)
  8. Object Model 使用数据库资源(就是使用具体tables的数据,高级话题:http://www.magentocommerce.com/wiki/development/magento_database_diagram )
  9. 使用DB
  10. 返回DB资源
  11. 返回Datas给Object(主意Magento的Datas被加工成Object了)
  12. 返回datas对应的Object给Block
  13. Block使用Helpers(哈哈,Helpers其实就是打杂的,正如其名,作用完成一些特定的功能:更多Helpers参看:Mage_Core_Helper_Abstract 这是个高级话题,在system.xml配置的时候必须指定Helper)
  14. Helpers使用Object Models资源(Helpers打杂的最终目的-搞点东西回来)
  15. Object返回Helpers请求的资源
  16. Helpers return HTML(哈哈,Helpers打杂主要就是处理一些HTML相关的东西)给Blocks
  17. Blocks使用Templates(不适用Template怎么把内容显示出来,这步也天经地义,没必要解释)
  18. Templates使用Helpers(Helpers有时需要配合一下Templates,如Helpers用于控制图像的显示等功能)
  19. Helpers 返回HTML或者data给Template
  20. Template返回HTML给Blocks(block其实就是页面的一部分自定义的区域)

Magento架构分析,Magento MVC 设计分析的更多相关文章

  1. Magento 架构基础知识概述

    Megento 架构基础知识概述 Magento整合了面向对象的基于PHP的应用程序的核心架构原则.这些一般原则的综合讨论既有在线的,也有印刷形式.以下讨论主要关注这些主题如何直接应用于Magento ...

  2. Magento架构师的笔记-----Magento显示当前目录的父分类和子分类的分类名

    在Magento目录的分类页面里,希望在左侧导航获取到父分类和子分类,可以用以下方法:打开app/your_package/your_themes/template/catalog/navigatio ...

  3. Magento 架构原则

    Magento架构原则 >OOP体系结构和编程原则OOP体系结构和编程原则面向对象编程(OOP)设计允许软件组件具有最大的灵活性和可扩展性,允许您设计和实现高度定制的网站.面向对象原则的优点包括 ...

  4. ECMALL模板解析机制.MVC架构分析及文件目录说明.二次开发指南手册(转)

    ECMALL模板解析语法与机制 http://www.nowamagic.net/architecture/archt_TemplateSyntaxAndAnalysis.php ECMALL模块开发 ...

  5. NopCommerce架构分析(转载)

    原文 一,NopCommerce架构分析之开篇 NopCommerce是.net开源项目中比较成熟的一款业务应用框架,也是电子商务系统中的典范.所以很想多学习一下里面的设计和实现方式. 二,NopCo ...

  6. 从一个简单案例上手Spring MVC,同时分析Spring MVC面试问题

    很多公司都会用Spring MVC,而且初级程序员在面试时,一定会被问到这方面的问题,所以这里我们来通过一个简单的案例来分析Spring MVC,事实上,我们在培训中就用这个举例,很多零基础的程序员能 ...

  7. Java安全(权限)框架 - Shiro 功能讲解 架构分析

    Java安全(权限)框架 - Shiro 功能讲解 架构分析 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 简述Shiro Shiro出自公司Apache(阿帕奇),是java的一 ...

  8. SpringBoot微服务架构下的MVC模型总结

    SpringBoot微服务架构下的MVC模型产生的原因: 微服务概念改变着软件开发领域,传统的开源框架结构开发,由于其繁琐的配置流程 , 复杂的设置行为,为项目的开发增加了繁重的工作量,微服务致力于解 ...

  9. 基于React的PC网站前端架构分析

    代码地址如下:http://www.demodashi.com/demo/12252.html 本文适合对象 有过一定开发经验的初级前端工程师: 有过完整项目的开发经验,不论大小: 对node有所了解 ...

随机推荐

  1. Xamarin.Android开发实践(十七)

    Xamarin.Android之定位 一.前言 打开我们手中的应用,可以发现越来越多的应用使用了定位,从而使我们的生活更加方便,所以本章我们将学习如何在Xamarin中进行定位的开发. 二.准备工作 ...

  2. SqlServer 临时表 与 表变量(转)

    1. 表变量 变量都以@或@@为前缀,表变量是变量的一种,另外一种变量被称为标量(可以理解为标准变量,就是标准数据类型的变量,例如整型int或者日期型DateTime).以@前缀的表变量是本地的,因此 ...

  3. LightOJ 1079 Just another Robbery 概率背包

    Description As Harry Potter series is over, Harry has no job. Since he wants to make quick money, (h ...

  4. HDU 4374 One hundred layer DP的单调队列优化

    One hundred layer Problem Description   Now there is a game called the new man down 100th floor. The ...

  5. hdu 4751(dfs染色)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4751 思路:构建新图,对于那些两点连双向边的,忽略,然后其余的都连双向边,于是在新图中,连边的点是能不 ...

  6. more命令

    more 命令 用于分屏显示 more命令一般用于显示内容超过一屏的文件.其他命令经常和more匹配使用,但more命令也客单独使用. (1)其他命令和more命令匹配使用: 格式:    其他命令格 ...

  7. node基础 --工具

    npm  //Node.js Package Manager 查询版本号:npm --version/npm version 查询模块:npm search <name> 查看模块相关信息 ...

  8. 递推DP URAL 1167 Bicolored Horses

    题目传送门 题意:k个马棚,n条马,黑马1, 白马0,每个马棚unhappy指数:黑马数*白马数,问最小的unhappy值是多少分析:dp[i][j] 表示第i个马棚放j只马的最小unhappy值,状 ...

  9. HTML的表单元素

    html的表单元素主要用于让用户输入数据并提交给服务器 基本语法:<form action="url" method="提交的方法,get/post,默认为get& ...

  10. xamarin studio And linq 查询方式分析

    在 Windows 操作系统可以正常读取网络上的 https 数据流,在 Linux 操作系统中会失败:http://www.cnblogs.com/skyivben/archive/2012/03/ ...