magento与别的框架的不同之处之一:路由规则通过xml文件进行配置
参考:《深入理解magento 第二章》
controller文件
之前我们新建了如下的模块,
完善一下HelloWorldController
<?php
//自己定义的前台的控制器都应继承Mage_Core_Controller_Front_Action
//类名称的格式为:模块名字空间_模块名称_controller名称
class Tencent_App_HelloWorldController extends Mage_Core_Controller_Front_Action
{
//默认控制器
public function indexAction()
{
echo '默认的action,如果没有指定action的话就会访问它';
}
public function sayAction()
{
echo "Hello World!";
}
}
如何访问controllers
下的HelloWorldController.php
呢?
修改模块配置文件的路由规则
编辑app\etc\config.xml
<?xml version="1.0"?>
<config>
<modules>
<Tencent_App>
<version>0.0.1</version>
</Tencent_App>
</modules>
<frontend><!--frontend是网站前台,admin是网站后台,install是magento的安装程序-->
<routers>
<Tencent_App><!--路由的标识,要唯一 -->
<use>standard</use>
<args>
<module>Tencent_App</module><!--模块-->
<frontName>app</frontName><!--在url中通过app就可以访问到Tencent_App-->
</args>
</Tencent_App>
</routers>
</frontend>
</config>
同样,清除magento的缓存使得配置文件生效之后,我们在浏览器上请求
locahost/magento/app/helloWorld/say
那么就会访问到HelloWorldController
下的sayAction
了
而请求
localost/magento/app/helloWorld
或
localhost/magento/app/helloWorld/index
就会访问到HelloWorldController
下的indexAction
注:本地域名需要根据本地电脑的配置进行替换