Magento:将基本网址存储在配置文件中

Ali*_*per 1 magento

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

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

是否可以?

ben*_*rks 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>
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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