2

我对 magento 配置系统感到困惑。在 etc 目录中有一些配置文件,如 config.xml、system.xml、adminhtml.xml。为什么magento有多个配置文件?如果我们需要在管理部分添加一些字段,我们使用了 php 代码,例如:

$fieldset->addField('uploaded_file', 'fileuploader', array(
        'label' => Mage::helper('fileuploader')->__('File'),
        'class' => 'required-entry',
        'required' => true,
        'name' => 'uploaded_file',
));

还有一些我们使用xml配置的地方

<sender translate="label comment">
<label>Sender</label>
<comment>Name of the sender</comment>
<validate>required-entry</validate>
<frontend_type>text</frontend_type>                                 
<sort_order>10</sort_order>                         
<show_in_default>1</show_in_default>                        
<show_in_website>1</show_in_website>                            
<show_in_store>1</show_in_store>
</sender>

在字段部分。

为什么我们不应该使用所有领域的通用配置 php orelse xml?请解释任何一个。

4

2 回答 2

1

Mangento 将所有需要的配置文件合并到一个大配置文件中,并将其存储在配置缓存中。

现在,如果我们只有一个配置文件,magento 将被迫加载配置数据,这在当前区域(前端、管理、api)中是不需要的,并且会减慢 magento 的速度。

始终只加载 config.xml,所有其他配置 *.xml 文件按需加载。

例如,在前端它不需要加载 system.xml 或 adminhtml.xml,因为它只包含后端使用的数据。

此外,如果您现在了解每个配置文件的用途,很容易找到您需要的内容。

对于第二个问题,我认为您指的是系统配置,存储在 system->configuration 下的 system.xml 和由各个模块创建的管理页面中。

通过xml字段中的字段配置,您可以创建输入字段,这将设置配置变量,由于这是一个不同的基本过程并且没有太多修改空间,可以通过xml进行配置。

对于您的各个模块,例如在您的文件上传示例中,它已经变得越来越复杂。考虑文件上传中的所有可能性,存储位置,允许的文件类型,是否有最大大小,也许您想做一些其他检查或将文件名保存在数据库中。为了更清楚,尝试想象定义“编辑产品”的管理页面所需的 xml

如果您想了解有关此主题的更多信息:http: //alanstorm.com/magento_config_tutorial这是一个好的开始

于 2013-09-22T08:49:17.130 回答
1

Magento 是模块化的,因此每个模块都有配置。

所以每个模块都会有一个etc/文件夹,里面有一个或多个 xml 文件。

然后有系统设置来访问在中找到的数据库app/etc/

最重要的是,您可以local.xml在模板layout/文件夹中有一个文件,可用于微调、完全更改或抑制各种功能。

使用所有区域app/code/core意味着第一次 Magento 版本升级对您来说非常有趣,因为您的所有更改都会被覆盖。因此,将您的配置更改保留在app/code/core/您创建的自定义模块中的模块以覆盖核心或app/code/local/Mage模块etc文件夹中的任何配置是一个好主意。

于 2013-09-22T00:16:35.453 回答