2013-07-05 48 views
0

我想了解当我设置新模块时,如何在我的配置中发生什么。要创建一个名为Ts_Wo我需要添加了解Magento初始化模块时发生了什么

应用程序/代码的/ etc /模块模块/ Ts_Wo.xml

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

,需要添加

应用程序/代码/本地/ TS/WO/etc/config.xml

<config> 
<modules> 
    <Ts_Wo> 
     <version>0.1.0</version> 
    </Ts_Wo> 
</modules> 
<frontend> 
    <routers> 
     <wo> 
      <use>standard</use> 
      <args> 
       <module>Ts_Wo</module> 
       <frontName>wo</frontName> 
      </args> 
     </wo> 
    </routers> 
</frontend> 
</config> 

从这里我去magento管理面板system-> configuration-> advanced检查模块是否启用。

这一直工作得很好,直到我发现我创建了两个模块Ts_Wo和Ts_Woo。很显然,我纠正错字(这是我在模块config.xml中的节点中找到),我又回到了一个模块

我的问题:

1 - 我想Magento的需要这两个文件来创建模块?

2-如果不是我为什么要创建这两个文件?

2a-如果是这样,当我预期没有模块显示时,它是如何显示两个不同的模块?

回答

2
  1. “模块” 在Magento是模糊,边界不清的概念。根据开发人员提供的内容,应用程序/代码将以各种方式实现模块中的任何类和配置。例如,创建一个类Ts_Wo_Model_Fooapp/code/local/Ts/Wo/Model/Foo.php然后在应用程序中通过new Ts_Wo_Model_Foo在某处实例化它。这是一个可以成为模块的一部分的类,但是模块本身并不在应用程序中正确存在。

  2. 应该两个单独的XML配置文件,以便(在app/etc/modules/,这是整体结构DOM的一部分)可以被用于控制是否模块的配置的XML模块的声明XML(例如app/code/local/Ts/Wo/etc/config.xml)应合并,并按什么顺序(基于<depends>)。将<active>标志设置为false将防止合并模块配置。

    2a。管理员中的显示(系统>配置>高级)显然是欺骗性的。一,此组用于禁用模块输出。二,这个组中列出的“模块”仅仅是从配置DOM xpath下的所有节点派生出来的,没有什么比这更简单。 即使将<active>标志设置为false的“模块”也会出现在此列表中。

+0

谢谢你的回应。现在感觉更清楚了。 – tony09uk

+0

“clear as mud”:-) – benmarks

+0

+1 @benmarks透明答案.. – liyakat