繁体   English   中英

有没有更有效/优雅的方法来配置解析?

[英]there a more effective/elegant way to config parsing?

例:

$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文档的整个顶部。 如果这是重复的,我事先表示歉意。

一种方法是访问您的配置的辅助功能。

例如,如果您想像这样访问您的配置:

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帮助器。 您的助手功能可能需要在您的应用程序或框架的上下文中以不同的方式实现。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM