1

有多个开发阶段,我想将一些 magento 配置保存在一个文件中,而不是在数据库中,所以我可以让我的开发版本和生产版本同步。

所以我需要将“基本网址”放在不同的地方,而不是数据库,因为我想将它从生产导出到开发

可能吗?

4

1 回答 1

5

这是可能的:

<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>

但是,如果有人曾System > Configuration > Web在管理员中保存(或已保存)该部分,则该范围的配置文件中的值将不适用。

有几种策略可以保护您的条目

  1. 使用基于文件的配置方法并通过管理员用户角色禁用对 Web 部分的访问(适用于所有用户)。警告:您需要在配置中提供所有配置选项。

  2. 使用设置脚本 (PHP) 将base_url条目写入表,并保护它们不被在事件的事件区域core_config_data下配置的观察者覆盖。adminhtmlcore_config_data_save_before

您还可以将策略 #2 中的观察者保护与策略 #1 中的基于文件的配置结合起来。

于 2013-07-12T15:44:14.290 回答