2

给定班级

<?php

class NameSpace_HelloWorld_IndexController extends Mage_Core_Controller_Front_Action
{

   public function sayHelloAction()
   {

   }

}

布局文件的名称应该是什么?

hello_world.xml
helloworld.xml

sayHelloAction 的 xml 动作名称应该是什么?

<hello_world_index_say_hello></hello_world_index_say_hello>
<helloworld_index_sayhello>

一篇关于 magento 命名约定的文章将不胜感激。我发现的示例仅解释了 Namespace_Helloworld_IndexController::sayhello() 编码风格。

4

2 回答 2

5

布局文件的名称应该是什么?

任何你想要的。布局文件没有强制的命名约定——它与模块名称完全分离。您需要做的就是在文件中指定一个 XML 布局文件名config.xml。也就是说,更注重工程的 Magento 开发人员的惯例是为第三方模块使用完整模块名称的小写版本 ( namespace_helloworld.xml)。

sayHelloAction 的 xml 动作名称应该是什么?

此节点的正确名称是完整的操作句柄。此处的命名将取决于您在 中如何配置路由器节点config.xml,以及特定 URL 如何通过系统自行路由。换句话说,超出了单个 Stack Overflow 答案的范围。

您可以在您的操作方法中使用以下代码查看完整的操作名称。

public function sayHelloAction()
{
    var_dump(strToLower($this->getFullActionName()));
}

不过一般来说,约定是

[Route Name]_[Controller Name]_[Action Name]

假设您设置路由名称以匹配您的模块名称,那将是

route name:      namespace_helloworld
controller name: index
action name:     sayHello

或者

namespace_helloworld_index_sayhello
于 2013-07-10T17:22:34.297 回答
0

NameSpace_HelloWorld_IndexControllerfile 控制器类名不正确 控制器类名应以“Controller”结尾,不允许使用 Controllerfile

关于布局文件:您应该在 config.php 中定义布局文件的名称

关于处理程序:如果你使用 camelCase,你只需要将方法名小写并从末尾删除 'action',例如 getSuperDataAction 将是 <route>_<controller>_getsuperdata

于 2013-07-10T17:19:37.770 回答