Magento架构分析,Magento MVC 设计分析
Magento架构分析,Magento MVC 设计分析
分类:Magento 标签:Magento MVC、Magento架构 669人浏览
Magento 采用类似 JAVA的架构,其扩展与稳定性非常突出,也是在开源电商平台最优秀的,下面我大概分析一下其内部架构
Magento系统请求响应流程图

下面是具体请求步骤分析
- 用户向浏览器发出请求(高级话题:What really happens when you navigate to a URL)
- 浏览器向magento所在的服务器发出请求,magento的Controllers捕捉该请求并分发(实例:Magento Controller Dispatch and Hello World )
- 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 )
- Object Model 返回相应的数据(大部分是系统配置信息请研究Class Mage_Core_Model_Config和相关的类)
- Controller 根据layout下的*.xml的配置信息使用相应的Layouts
- Layout 使用Blocks(Blocks是Layout的骨架)
- Blocks使用Object Model(哈哈,这步是天经地义的,不通过Model使用数据库等相关的资源,Blocks就是巧妇难为无米之炊)
- Object Model 使用数据库资源(就是使用具体tables的数据,高级话题:http://www.magentocommerce.com/wiki/development/magento_database_diagram )
- 使用DB
- 返回DB资源
- 返回Datas给Object(主意Magento的Datas被加工成Object了)
- 返回datas对应的Object给Block
- Block使用Helpers(哈哈,Helpers其实就是打杂的,正如其名,作用完成一些特定的功能:更多Helpers参看:Mage_Core_Helper_Abstract 这是个高级话题,在system.xml配置的时候必须指定Helper)
- Helpers使用Object Models资源(Helpers打杂的最终目的-搞点东西回来)
- Object返回Helpers请求的资源
- Helpers return HTML(哈哈,Helpers打杂主要就是处理一些HTML相关的东西)给Blocks
- Blocks使用Templates(不适用Template怎么把内容显示出来,这步也天经地义,没必要解释)
- Templates使用Helpers(Helpers有时需要配合一下Templates,如Helpers用于控制图像的显示等功能)
- Helpers 返回HTML或者data给Template
- Template返回HTML给Blocks(block其实就是页面的一部分自定义的区域)
Magento架构分析,Magento MVC 设计分析的更多相关文章
- Magento 架构基础知识概述
Megento 架构基础知识概述 Magento整合了面向对象的基于PHP的应用程序的核心架构原则.这些一般原则的综合讨论既有在线的,也有印刷形式.以下讨论主要关注这些主题如何直接应用于Magento ...
- Magento架构师的笔记-----Magento显示当前目录的父分类和子分类的分类名
在Magento目录的分类页面里,希望在左侧导航获取到父分类和子分类,可以用以下方法:打开app/your_package/your_themes/template/catalog/navigatio ...
- Magento 架构原则
Magento架构原则 >OOP体系结构和编程原则OOP体系结构和编程原则面向对象编程(OOP)设计允许软件组件具有最大的灵活性和可扩展性,允许您设计和实现高度定制的网站.面向对象原则的优点包括 ...
- ECMALL模板解析机制.MVC架构分析及文件目录说明.二次开发指南手册(转)
ECMALL模板解析语法与机制 http://www.nowamagic.net/architecture/archt_TemplateSyntaxAndAnalysis.php ECMALL模块开发 ...
- NopCommerce架构分析(转载)
原文 一,NopCommerce架构分析之开篇 NopCommerce是.net开源项目中比较成熟的一款业务应用框架,也是电子商务系统中的典范.所以很想多学习一下里面的设计和实现方式. 二,NopCo ...
- 从一个简单案例上手Spring MVC,同时分析Spring MVC面试问题
很多公司都会用Spring MVC,而且初级程序员在面试时,一定会被问到这方面的问题,所以这里我们来通过一个简单的案例来分析Spring MVC,事实上,我们在培训中就用这个举例,很多零基础的程序员能 ...
- Java安全(权限)框架 - Shiro 功能讲解 架构分析
Java安全(权限)框架 - Shiro 功能讲解 架构分析 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 简述Shiro Shiro出自公司Apache(阿帕奇),是java的一 ...
- SpringBoot微服务架构下的MVC模型总结
SpringBoot微服务架构下的MVC模型产生的原因: 微服务概念改变着软件开发领域,传统的开源框架结构开发,由于其繁琐的配置流程 , 复杂的设置行为,为项目的开发增加了繁重的工作量,微服务致力于解 ...
- 基于React的PC网站前端架构分析
代码地址如下:http://www.demodashi.com/demo/12252.html 本文适合对象 有过一定开发经验的初级前端工程师: 有过完整项目的开发经验,不论大小: 对node有所了解 ...
随机推荐
- 批量update
参见http://lj.soft.blog.163.com/blog/static/7940248120109215191358/ 例子:update CarSeriesDetail set clic ...
- C#开发微信公众平台-就这么简单(附Demo)(转载)
转载地址:http://www.cnblogs.com/xishuai/p/3625859.html 写在前面 服务号和订阅号 URL配置 创建菜单 查询.删除菜单 接受消息 发送消息(图文.菜单事件 ...
- 3.Factory Method 工厂方法模式(创建型模式)
1.定义: 定义一个用于创建对象的接口,让子类决定实例化哪一个类.Factory Method使得一个类的实例化延迟到子类. 2.实现代码如下: /// <summary> /// 工厂方 ...
- js选中当前菜单后高亮显示的导航条
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- GitHub在Visual Studio 2015中获得TFS/VSO同等地位
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 在Visual Studio 2015中微软为GitHub提供了扩展插件,从而让GitHub ...
- javaWeb项目中web.xml的xsd( XML Schemas Definition)文件
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns="http://w ...
- vi总结
vi常用命令整理 ★命令模式 移动光标 h 或 向左方向键(←) → 光标向左移动一个字元 j 或 向下方向鍵(↓) → 光标向下移动一个字元 k 或 向上方向鍵(↑) → 光标向上移动一个字元 l ...
- Xamarin Android项目运行失败
Xamarin Android项目运行失败 错误信息:Build Failed: MonoDroid does not support running the previous version. P ...
- Bitnami Redmine安装和插件配置
公司要进行敏捷开发管理,最后选择Redmine作为管理工具. 而Redmine本身的安装非常麻烦,要安装mysql,ruby,redmine,apach. 显然这不是一个偷懒的人应该做的,最后找到Bi ...
- 水题 HDOJ 4716 A Computer Graphics Problem
题目传送门 /* 水题:看见x是十的倍数就简单了 */ #include <cstdio> #include <iostream> #include <algorithm ...