0

I am trying to understand how what is happening in my config, when I set up a new module. To create a module called Ts_Wo I need to add

app/code/etc/modules/Ts_Wo.xml

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

And need to add

app/code/local/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>

from here I go to the magento admin panel system->configuration->advanced to check if the module is enabled.

This has all worked fine until I spotted that I had created two modules Ts_Wo and Ts_Woo. Obviously I corrected the typo (which I found in modules node of config.xml) and I was back to one module

My questions:

1- I thought Magento required both of these files to create the module?

2- If it doesn't why do I create the two files?

2a- If it does how is it two different modules were displayed when I would have expected no module to be displayed?

4

1 回答 1

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

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

    2a. 管理员(系统 > 配置 > 高级)中的显示是出了名的欺骗性。一、该组用于禁用模块输出。二、本组列出的“模块”,简单来说就是从modules配置DOM xpath下的所有节点派生出来的,不多也不少。即使<active>标志设置为 false 的“模块”也会出现在此列表中。

于 2013-07-05T14:42:53.953 回答