buuum/config

PHP 的简单配置加载器

v2.0.1 2021-04-29 08:48 UTC

This package is auto-updated.

Last update: 2024-08-29 04:19:52 UTC


README

Packagist license

安装

系统要求

使用 Buuum\Config 需要 PHP >= 5.5.0,但建议使用最新的稳定版 PHP。

Composer

Buuum\Config 可在 Packagist 上找到,并可以使用 Composer 进行安装

composer require buuum/config

手动

只要遵循 PSR-0 或 PSR-4 标准,您可以使用自己的自动加载器。只需将 src 目录的内容放入您的 vendor 目录。

 初始化

$configs = [
   'environment'  => 'local',

   'local' => [
      'host'        => 'host.dev',
      'public'      => 'httpdocs',
      'development' => true,
      'bbdd'        => [
          'database' => 'database_name',
          'host'     => '127.0.0.1',
          'username' => 'username',
          'password' => 'password'
      ]
  ],
  'prod' => [
         'host'        => 'host.com',
         'public'      => 'httpdocs',
         'development' => false,
         'bbdd'        => [
             'database' => 'database_name',
             'host'     => '127.0.0.1',
             'username' => 'username',
             'password' => 'password'
         ]
     ]

];

$autoloads = [
    "files" => ['functions.php'],
    "psr-4" => [
        "App\\Demo\\" => __DIR__."/src/Demo",
    ]
];

$config = new Config($configs, $autoloads);

使用点符号获取配置值

$config->get('environment');
// return local
$config->get('local.host');
// return host.dev
$config->get('local.bbddd');
// return array
$config->get('local.bbdd.database);
// return database_name

 解析错误

您需要 handleErrorInterface 来处理解析错误示例

class HandleError implements HandleErrorInterface
{

    private $logPath;
    private $debugMode;

    public function __construct($debugmode, $logPath = null)
    {
        $this->logPath = $logPath;
        $this->debugMode = $debugmode;
    }

    public function getDebugMode()
    {
        return $this->debugMode;
    }

    public function parseError($errtype, $errno, $errmsg, $filename, $linenum)
    {

        $err = "<errorentry>\n";
        $err .= "\t<datetime>" . date("Y-m-d H:i:s (T)") . "</datetime>\n";
        $err .= "\t<errornum>" . $errno . "</errornum>\n";
        $err .= "\t<errortype>" . $errtype . "</errortype>\n";
        $err .= "\t<errormsg>" . $errmsg . "</errormsg>\n";
        $err .= "\t<scriptname>" . $filename . "</scriptname>\n";
        $err .= "\t<scriptlinenum>" . $linenum . "</scriptlinenum>\n";

        $err .= "</errorentry>\n\n";

        error_log($err, 3, $this->logPath . "/error.log");

    }
}

$handle = new HandleError(true, __DIR__);
$config->setupErrors($handle);
  • 如果 debugMode 为 true,则显示错误
  • 如果 debugMode 为 false,则调用 parseError

许可证

MIT 许可证 (MIT)

版权所有 (c) 2016

在此,任何获得本软件及其相关文档副本(“软件”)的人士,无论是否免费,均有权在不受限制的情况下处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向提供软件的人士授予此类权利,但须遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和无侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任(无论基于合同、侵权或其他原因)承担责任,这些索赔、损害或其他责任源自、因之产生或与此软件或其使用或其他处置有关。