当我设置一个新模块时,我试图了解配置中发生了什么。要创建一个名为Ts_Wo的模块,我需要添加
应用程序/代码的/ etc /模块/ Ts_Wo.xml
<config>
<modules>
<Ts_Wo>
<active>true</active>
<codePool>local</codePool>
</Ts_Wo>
</modules>
</config>
需要添加
应用程序/代码/本地/ TS / WO /等/ 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管理面板系统 - >配置 - &gt;高级以检查模块是否已启用。
这一切都很好,直到我发现我创建了两个模块Ts_Wo和Ts_Woo。显然我更正了错误(我在config.xml的模块节点中找到)并且我回到了一个模块
我的问题:
1-我认为Magento需要这两个文件来创建模块吗?
2-如果不是为什么我要创建这两个文件?
2a-如果它确实如何在我预期没有显示模块的情况下显示两个不同的模块?
答案 0 :(得分:2)
“模块”是一个模糊的,定义不明确的概念。根据开发人员提供的内容,应用程序/代码将以不同的方式实现作为模块一部分的任何类和配置。例如,在 Ts_Wo_Model_Foo
创建一个类app/code/local/Ts/Wo/Model/Foo.php
,然后通过new Ts_Wo_Model_Foo
在应用程序中将其实例化。它是一个可以作为模块一部分的类,但模块本身并没有在应用程序中正确存在。
应该两个单独的配置XML文件,以便模块的声明XML(在 app/etc/modules/
中,是整体配置DOM的一部分可用于控制是否应合并模块的配置XML(例如 app/code/local/Ts/Wo/etc/config.xml
),以及以何种顺序(基于<depends>
) 。将<active>
标志设置为false
将阻止模块配置合并。
2a上。管理员(系统&gt;配置&gt;高级)中的显示是众所周知的欺骗。一,该组用于禁用模块输出。第二,这个组中列出的“模块”只是从modules
配置DOM xpath下的所有节点派生而来,仅此而已。 即使是<active>
标志设置为false的“模块”也会显示在此列表中。