有一种更有效/优雅的方式来配置解析?

问题描述 投票:1回答:1

例:

$CONF = parse_ini_file('cfg.ini', true);
$EmailUN = $CONF['EM']['key01'];
$EmailPW = $CONF['EM']['key02'];
$EmailTO = $CONF['EM']['key03'];
$SMSAPI = $CONF['SMS']['key01'];
$SMSUN = $CONF['SMS']['key02'];
$SMSPW = $CONF['SMS']['key03'];
$SMSNUM = $CONF['SMS']['key04'];

是否有更有效/优雅的方式导入这些数据?我想在学习的同时学习最佳实践。我不想用我想要密钥的对象填满我的php文档的顶部。如果这是重复,我提前道歉。

php config ini
1个回答
0
投票

一种方法是访问配置的辅助函数。

例如,如果您想要访问您的配置,请执行以下操作:

config('SMS.key01');

您可以将config函数定义为:

function config(string $key)
{
    static $config = parse_ini_file('cfg.ini', true);

    $curr = $config;
    foreach(explode('.', $key) as $segment) {
        if(!isset($curr[$segment]) {
            return null;
        } else if(is_array($curr[$segment])) {
            $curr = $curr[$segment];
            continue;
        }

        return $curr[$segment];
    }
}

以上是一个基于Laravel的configarray_get助手的最小例子。您的辅助函数可能需要在应用程序或框架的上下文中以不同方式实现。

这种方法的主要优点是,函数中包含有关如何存储和访问配置的所有实现细节。您正在做的事情现在将低级别的实现细节渗透到您的其余代码中。

© www.soinside.com 2019 - 2024. All rights reserved.