了解Magento初始化模块时发生的情况

了解Magento初始化模块时发生的情况,magento,Magento,当我设置一个新模块时,我试图理解我的配置中发生了什么。要创建名为Ts_Wo的模块,我需要添加 app/code/etc/modules/Ts_Wo.xml <config> <modules> <Ts_Wo> <active>true</active> <codePool>local</codePool> </Ts_Wo> </

当我设置一个新模块时,我试图理解我的配置中发生了什么。要创建名为Ts_Wo的模块,我需要添加

app/code/etc/modules/Ts_Wo.xml

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

真的
地方的
需要补充的是

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>

0.1.0
标准
祖和
沃
从这里我进入magento管理面板系统->配置->高级,检查模块是否已启用

这一切都很好,直到我发现我已经创建了两个模块Tsu Wo和Tsu Woo。显然,我更正了这个类型(我在config.xml的modules节点中找到),然后返回到一个模块

我的问题是:

1-我以为Magento需要这两个文件来创建模块

2-如果没有,为什么我要创建这两个文件

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

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

  • 应该有两个单独的配置XML文件,以便可以使用模块的声明XML(在
    app/etc/modules/
    ,它是整个配置DOM的一部分)来控制模块的配置XML(例如
    app/code/local/Ts/Wo/etc/config.XML
    )是否应该合并,以及合并的顺序(基于
    )。将
    标志设置为
    false
    将防止合并模块配置

    2a.admin(系统>配置>高级)中的显示是出了名的欺骗。一,此组用于禁用模块输出。二,此组中列出的“模块”只是从
    modules
    Configuration DOM xpath下的所有节点派生而来,不多也不少。甚至“模块”当
    标志设置为false时,此列表中将出现。


  • @benmarks只是增加了模糊性,但我从来没有将app/etc/modules文件视为模块的一部分。这些是更多的Magento配置文件来告诉它要加载哪个模块。@AlanStorm-这是正确的思考方式。不幸的是,它们可以(并且已经)用于修改主模块配置。