magento创建一个简单的test模块

  1. 创建一个 test 模快
  2. 为这个模块配置路由
  3. 为这个模块配置执行控制器

    首先在app/code/local下建好模块的骨架,也就是按magento规则创建的模块所需的文件目录
    文件夹的命名规则为: app/code/local/Packagename/Modulename
    所以创建的目录结如下:
    app/code/local/Jeffry/Test/Block
    app/code/local/Jeffry/Test/controllers
    app/code/local/Jeffry/Test/etc
    app/code/local/Jeffry/Test/Helper
    app/code/local/Jeffry/Test/Model
    app/code/local/Jeffry/Test/sql

然后在app/code/local/Jeffry/Test/etc下创建config.xml文件,并为模块分配路由
编辑config文件

<config>
    <modules><!-- 模块版本信息-->
        <Jeffry_Test>
            <version>0.1</version>
        </Jeffry_Test>
    </modules>
    <frontend><!--定义magento区 frontend网站前台-->
        <routers><!--<routers>标签有时候包含的是路由对象的定义,有时候包含的是路径的定义。路由对象是进行路由操作的实体,而路径仅仅是路由对象的一个参数-->
            <test>
                <use>standard</use><!--使用标准固定写法-->
                    <args>
                        <module>Jeffry_Test</module><!-- 模块全名  定义你的模块文件-->
                        <frontName>test</frontName><!-- 模块名称(此处仅支持小写)-->
                    </args> 
            </test>
        </routers>
    </frontend>
</config>

再创建一个系统配置文件来激活这个模块 app/etc/modules/Jeffry_Tese.xml

<config>
    <modules>
        <Jeffry_Test>
            <active>true</active>
            <codePool>local</codePool>
        </Jeffry_Test>
    </modules>
</config>

检查模块是否已激活

  1. 清空 Magento 缓存
  2. 在管理后台,进入 System->Configuration->Advanced
  3. 展开“DisableModulesOutput”
  4. 确认 Goglobalis_Test显示出来了

    这里写图片描述

最后要创建一个执行控制器
app/code/local/Jeffry/Test/controllers/indexController.php

<?php
//我们自己定义的属于 frontend 区的执行控制器都应该继承 Mage_Core_Controller_Front_Action
    class Jeffry_Test_indexController extends Mage_Core_Controller_Front_Action{
        public function indexAction(){
            echo 'Hello Word!';
        }

    }

这里执行控制器的命名规则如下

  1. 以moudule标签的内容开始 (Jeffry_Test)
  2. 紧接一个下划线 (Jeffry_Test_)
  3. 加上我们给控制器取的名字“Index”(Jeffry_Test_Index)
  4. 最后加上关键词“Controller” (Jeffry_Test_IndexController)

我们自己定义的属于frontend区的执行控制器都应该继承Mage_Core_Controller_Front_Action。

URL里面的index/index是什么意思?
正如前文所述,Magento默认的路由的规则如下
http://example.com/frontName/actionControllerName/actionMethod/
所以在我们请求的URL
http://localhost/porto/index.php/test/index/index
其中“test”是“frontName”,第一个“index”是执行控制器(Action Controller)的名字,第二个“index”是执行方法的名字。对比我们写的执行控制器代码,我们不难发现执行方法的定义是执行方法名字加上“Action”关键字
public function indexAction(){…}
Magento根据命名规则找到执行控制器文件并实例化,然后再根据命名规则调用指定的执行方法。如果URL没有给出执行控制器名字或者执行方法,Magento会用默认的“index”来替代。
现在我们访问:http://localhost/porto/index.php/test/index/index可以看到空白页面上显示Hello World!
至此test模块创建完毕。

ps:
1、在创建模块时参考了一些网上的文档,大体上还是比较顺利,但是还是遇到了一些小问题。在安装magento时到连接数据库时在web option选项设置里的base url一直不正确,最后设为http://127.0.0.1/porto才正确
2、在访问执行控制器时按照文档中的url为http://exmaple.com/helloworld/index/index但是一直是无法连接服务器,最后通过查资料改为http://localhost/porto/index.php/test/index/index后可正常访问执行控制器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值