我与magento配置系统混淆了。在etc目录中有一些配置文件,如config.xml,system.xml,adminhtml.xml。为什么magento有多个配置文件?如果我们需要在管理部分添加一些字段,我们使用的代码如下:
$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?请解释一下。
答案 0 :(得分:1)
Magento是模块化的,因此每个模块都有配置。
因此每个模块都有一个etc/
文件夹,其中包含一个或多个xml文件。
然后有系统设置来访问app/etc/
最重要的是,您可以在模板local.xml
文件夹中添加layout/
文件,该文件可用于微调,完全更改或禁止各种功能。
使用app/code/core
中的所有区域意味着第一次Magento版本升级对您来说非常幽默,因为所有更改都会被覆盖。因此,最好将配置更改保留在您创建的自定义模块中的app/code/core/
中找到的模块中,以覆盖核心或app/code/local/Mage
模块etc
文件夹中的任何配置。
答案 1 :(得分:1)
Mangento将所需的所有配置文件合并到一个大配置文件中并存储 这个在配置缓存中。
现在,如果我们只有一个配置文件,magento将被强制加载配置数据,这在当前区域(前端,管理员,api)中是不需要的,并且会降低magento的速度。
始终只加载config.xml,所有其他config * .xml文件都按需加载。
在前端例如,它不需要加载system.xml或adminhtml.xml,因为后端只包含数据。
另外如果你现在每个配置文件的目的,它很容易找到你需要的东西。
关于你的第二个问题,我认为你指的是系统配置, 存储在system.xml下的system-&gt;由各个模块创建的配置和管理页面。
使用xml字段中的字段配置,您可以创建输入字段,这将设置配置变量,因为这是一个变化的基本过程,并且没有太多的修改空间,可以通过xml配置。
对于单个模块,例如文件上传,它已经变得越来越复杂。考虑文件上载中的所有可能性,存储位置,允许的文件类型,是否有最大大小,可能要进行其他检查或将文件名保存在数据库中。 为了更清楚,试着想象一下定义“编辑产品”管理页面所需的xml
如果您想了解有关此主题的更多信息: http://alanstorm.com/magento_config_tutorial这是一个好的开始