Magento命名约定

Mar*_*elo 2 naming-conventions magento magento-1.7

给定班级

<?php

class NameSpace_HelloWorld_IndexController extends Mage_Core_Controller_Front_Action
{

   public function sayHelloAction()
   {

   }

}
Run Code Online (Sandbox Code Playgroud)

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

hello_world.xml
helloworld.xml
Run Code Online (Sandbox Code Playgroud)

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

<hello_world_index_say_hello></hello_world_index_say_hello>
<helloworld_index_sayhello>
Run Code Online (Sandbox Code Playgroud)

有关magento命名约定的文章将不胜感激。我发现的示例仅说明了Namespace_Helloworld_IndexController :: sayhello()编码样式。

Ala*_*orm 5

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

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

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

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

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

public function sayHelloAction()
{
    var_dump(strToLower($this->getFullActionName()));
}
Run Code Online (Sandbox Code Playgroud)

一般来说,惯例是

[Route Name]_[Controller Name]_[Action Name]
Run Code Online (Sandbox Code Playgroud)

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

route name:      namespace_helloworld
controller name: index
action name:     sayHello
Run Code Online (Sandbox Code Playgroud)

要么

namespace_helloworld_index_sayhello
Run Code Online (Sandbox Code Playgroud)