有多个开发阶段,我想将一些 magento 配置保留在文件中,而不是数据库中,这样我就可以使我的开发版本和生产版本同步。
所以我需要将“基本网址”放在不同的位置,这不是数据库,因为我想将其从生产导出到开发
是否可以?
这是可能的:
<default>
<web>
<unsecure>
<base_url>https://foo.dev/</base_url>
</unsecure>
<secure>
<base_url>https://foo.dev/</base_url>
</secure>
</web>
</default>
<websites>
<ws_code>
<web>
<unsecure>
<base_url>http://ws.foo.dev/</base_url>
</unsecure>
<secure>
<base_url>https://ws.foo.dev/</base_url>
</secure>
</web>
</ws_code>
</websites>
<stores>
<store_code>
<web>
<unsecure>
<base_url>http://store.foo.dev/</base_url>
</unsecure>
<secure>
<base_url>https://store.foo.dev/</base_url>
</secure>
</web>
</store_code>
</stores>
Run Code Online (Sandbox Code Playgroud)
但是,System > Configuration > Web如果有人在管理员中保存(或已保存)该部分,则该范围的配置文件中的值将不适用。
有几种保护您的条目的策略
使用基于文件的配置方法并禁用通过管理员用户角色(对于所有用户)对 Web 部分的访问。注意:您需要在配置中提供所有配置选项。
使用设置脚本 (PHP) 将base_url条目写入表中,并通过在事件的事件区域core_config_data下配置的观察者来保护它们不被覆盖。adminhtmlcore_config_data_save_before
您还可以将策略#2 中的观察者保护与策略#1 中基于文件的配置结合起来。