`
cgzhang
  • 浏览: 73914 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Magento模块开发 第一部分

阅读更多
1.模块配置文件
基本的模块配置文件有2个,一个是etc下面的config.xml, 还有一个在app/etc/modules下面,以YourPackageName_ YourModuleName.xml命名。
Magento里面的模块都属于不同的包(Package), 每个包又分属于不同的代码池中(Code Pool)。Magento 中的 代码池有core, community和local三个,一般开发的模块放在local代码池中。 也就是在local下的以包名字命名的文件夹中。local/PackageName/ModuleName。

先看下YourPackageName_ YourModuleName.xml。这个配置文件内容很少,主要说明模块所在的代码池和依赖的模块信息。以下PackgeName 用P简写, MouldeName 用 M来简写。

<?xml version="1.0"?>
<config>
    <modules>
        <P_M>
            <active>true</active>
            <codePool>local</codePool>
        </P_M>
    </modules>
</config>


将这个xml配置文件保存到app/etc/modules目录下,文件名为P_M.xml。

进入Magento的管理后台,刷新缓存,然后在 System/Configuration/Advanced下面应该可以看到刚才创建的模块P_M, 并且为Enable, 虽然这时候模块所在的文件夹还没有创建。
我们要创建一个名为HelloWorld的模块,包名为Fox。配置文件名为Fox_HelloWorld.xml。(注意文件名的大小写,在不同的配置文件里一定要一致,否则在linux主机下会出现问题)。

<?xml version="1.0"?>
<config>
    <modules>
        <Fox_HelloWorld>
            <active>true</active>
            <codePool>local</codePool>
        </Fox_HelloWorld>
    </modules>
</config>


2.新建模块
2.1 创建模块文件夹结构
在app/code/local下面,完整的模块包括以下文件夹, 以HelloWorld模块为例:
--Fox
	--HelloWorld
		+Block
 		+controllers
		+etc
		+Helper
		+Model
		+sql


每个文件夹下面可能还会根据需要创建子文件夹,后面会详细说明。
2.2 模块基本配置文件config.xml
config.xml是Magento模块的核心,里面配置了块(Block)、控制器( Controllers)、模型(Model)等模块部件,同时也体现的Magento MVC的思想。先看一下 config文件的基本结构。

<?xml version="1.0"?>
<config>
	<modules>
		<Fox_HelloWorld>   <!--模块的完整名称,和配置文件一致 -->
			<version>0.1.0</version>  
		</Fox_HelloWorld>
	</modules>
	<global>
		<blocks>
			<!-- 块声明 -->
		</blocks>
		<helpers>
			<!--帮助类声明 -->
		</helpers>
	</global>
	<frontend> <!--前台路由配置 -->
		<routers>
			<helloworld> <!—模块路由的标签名 -->
				<use>standard</use> 
				<args>
					<module> Fox_HelloWorld </module>
					<frontName>helloworld</frontName> <!—前台请求的名称 -->
				</args>
			</helloworld>
		</routers>
</config>

确保上面的config.xml保存在etc目录下。

3. 创建控制器类
3.1 控制器类
控制器类用于处理请求,并调用Block对象通过模板文件phtml产生最终的结果。简单起见,我们的第一个例子没有使用template, 而是仅仅简单的输出helloworld。

class Fox_HelloWorld_IndexController extends Mage_Core_Controller_Front_Action
{
	public function indexAction(){
		echo ‘hello world!’;
	}
}

将上面的文件命名为IndexController.php并保存在controllers目录下。

现在访问 http://localhost/helloworld/index/index,将会看到输出hello world。

URL分别对应 http://localhost/{frontName}/{controllerName}/{actionName}

如果直接访问 http://localhost/{frontName} 则访问默认的IndexController 和 IndexAction

所以也可以访问 http://localhost/helloworld, 也会输出相同的结果。

所有的前端控制器都继承自Mage_Core_Controller_Front_Action, 有2个很重要的方法preDispatch和postDispatch分别在请求分发前和分发后调用。
--未完待续--
分享到:
评论

相关推荐

    学习Magento模块开发必看

    Magento模块开发是构建在Magento电子商务平台上的核心技术之一,它为开发者提供了强大的可扩展性和定制能力。Magento模块设计遵循一种模块化架构,使得系统能够通过添加、修改或禁用独立的模块来实现功能的增删改查...

    Magento php开发指南

    4. 模块开发:深入探讨如何创建和开发Magento模块,模块是Magento扩展功能的主要方式,包括如何注册和启用模块,如何定义配置文件、数据模型、控制器和视图文件等。 5. 主题和样式定制:指导开发者如何通过修改或...

    如何创建magento模块

    #### 一、理解Magento模块的概念 在Magento中,所有功能性的扩展都是通过模块来实现的。这些模块可以是官方提供的,也可以是第三方开发的,甚至是自己定制开发的。一个模块就是一个相对独立的功能集合,它可以包含...

    magento中文开发教程

    3. **模块开发**:掌握创建新模块的步骤,包括编写XML配置文件、模型、资源模型、控制器、视图文件(PHTML、XML、CSS、JS)和语言包。理解模块的命名空间和版本控制对整个项目的重要性。 4. **模板与主题**:...

    magento使用和开发

    API接口的开发允许外部系统与Magento进行交互,提供了数据交换的途径,这对于集成第三方服务或实现数据同步非常重要。 Magento开发还涉及模板和主题的创建和修改,以及区块的利用来增加定制内容。掌握这些开发知识...

    magento2后端开发

    1. Magento 2后端开发:涉及后台管理功能、模块开发、数据库操作、API集成、安全性设置、性能优化、主题和布局定制等。 2. Magento 2认证专业开发者考试准备:了解考试形式和时间管理,掌握实际问题解决的技巧,...

    Magento-中文开发教程

    深入理解Magento-第一章 – Magento强大的配置系统 深入理解Magento-第二章 – Magento请求分发与控制器 深入理解Magento-第三章 – 布局,块和模板 深入理解Magento-第四章 – 模型和ORM基础 深入理解...

    [Magento.开发书籍].Packt.Magento.1.3.PHP.Developer's.Guide.(2010)

    - **Jamie Huskisson**:一位来自英国诺丁汉的年轻自由职业开发者,拥有多年的Magento开发经验。他曾在早期Beta版本时就开始接触Magento,并为众多知名企业如NHS、Volkswagen等提供过开发服务。此外,他还担任过开发...

    magento结构和原理

    magento模块开发实例 magento扩展开发的概念相对统一,名称叫Module。从访问入口看,Magento扩展一般有两种展现形式: 1. 作为一个完整的页面,从浏览器地址栏访问新增的模块。 2. 作为页面的一个片段,插接到现已...

    Magento.开发源码和开发资料

    开发书籍].Packt.Magento.1.3.PHP.Developer's.Guide.(2010).pdf`:这是一本专门针对Magento开发者的指南,涵盖了Magento 1.3版本的开发技术,包括主题定制、模块开发和性能优化等内容。 - `magento1.4.1(zh_cn)....

    Magento2.3 最新中文开发文档

    * 最后,你可以开发新模块以向站点添加新的自定义功能,或扩展现有的 Magento 或第三方模块提供的功能。 前端开发先决条件 * 安装有效的 Magento 并在设备上安装以下浏览器版本:店铺前台和后台管理员,Internet ...

    magento 1.9.0.2

    在本文中,我们将深入探讨Magento 1.9.2.0版本,这是一个针对网站开发和商务独立站的老版64位系统。 首先,让我们了解Magento 1.9.2.0的核心特性: 1. **强大的商品管理**:Magento 1.9.2.0允许商家管理大量商品,...

    Magento认证工程师考试提纲

    - **描述典型的Magento模块结构**:一个标准的Magento模块由多个部分组成,包括配置文件(`config.xml`)、模型类(Models)、控制器(Controllers)、块类(Blocks)等。每个模块通常位于其对应的命名空间下。 - ...

    Magento1产品预览

    总的来说,实现Magento1产品预览功能需要结合前端技术(如HTML、CSS、JavaScript)和后端的Magento架构知识,包括模块开发、模板修改、事件处理和布局更新。这不仅提升了用户体验,也是Magento电商平台优化的重要一...

    Laravel开发-bizzy-magento2

    1. **API集成**:Bizzy-Magento2可能包含用于与Laravel接口的API,允许更灵活的数据交换和第三方服务集成。 2. **性能优化**:利用Laravel的缓存机制(如Redis或Memcached)和数据库查询优化,提升Magento2的性能。 ...

    The Definitive Guide to Magento (Apress出品 Magento权威指南)

    - **第1章:Magento简介** 本章首先介绍了Magento的历史背景和发展历程,然后详细阐述了Magento的核心概念和技术架构。此外,还探讨了Magento与其他电子商务平台的区别以及其优势所在。 - **第2章:环境搭建与安装...

    magento的目录详解

    1. **app**:这是Magento的核心部分,包含所有自定义和核心模块。`app/code`目录下有三个子目录——`Community`、`Core`和`Local`,分别用于存储社区扩展、核心代码和本地化修改。`app/design`用于存放主题和模板...

    Magento开发文章合集

    - Magento的Rewrite机制允许重写核心或第三方模块的类,实现功能的覆盖或扩展。 11. **EAV模型**: - EAV模型使Magento能处理各种复杂的数据结构,如商品的多属性、变种等。 12. **添加Top Link**: - Magento...

    magento模板开发图文教程

    **4.9 第一个控制器** - 创建控制器通常涉及到定义一个PHP类,该类继承自Magento的核心控制器类,并实现特定的功能。 **4.10 布局文件的配置** - 布局文件主要用于定义页面元素的组织结构,通常是一个XML文件,...

    magento1.8

    - 它的模块化架构使得扩展和定制变得容易,通过Magento Connect可以方便地安装第三方插件。 - 强大的SEO功能,帮助商家提高在线可见性。 - 提供多种支付和配送选项,适应不同的商业需求。 - 客户分组和忠诚度...

Global site tag (gtag.js) - Google Analytics