oleics/ac-config

PHP 简单且不可变的配置和环境对象。

1.0.0 2016-06-29 00:03 UTC

This package is not auto-updated.

Last update: 2024-09-18 19:04:04 UTC


README

PHP 简单且不可变的配置和环境对象。

安装

composer require oleics/ac-config

使用

使用 yaml 文件 config.yaml 作为示例

env:
  mode: development

foo-bar: baz

配置

<?php

use Ac\Config\Config;

$config = Config::loadFromYaml('config.yaml');

echo $config->env->mode;      // > development
echo $config->fooBar;         // > baz

// Converts to JSON
echo $config->env.'';         // > {"mode":"development"}
echo Config::toJson($config); // > {"env":{"mode":"development"},"foo-bar":"baz"}

// Next line throws an exception
$config->env = 'production';

环境

<?php

use Ac\Config\Env;

// maybe boot-level *hinthint*
Env::loadConfigFromYaml('config.yaml');
Env::autoset(); // throws if no valid env-mode could be detected

// maybe app-level *hinthint*
Env::configDefaults([
  'foo' => 'bar'
]);

// maybe controller-level *hinthint*
echo Env::$config->env->mode === Env::getMode(); // > true

if(Env::isNotProduction()) {
  // Something to print for non-production environments (development or staging)
  echo Env::$config->foo;    // > bar
  echo Env::$config->fooBar; // > baz
}

API

最终类 Config

Config 的实例是不可变的,但您可以使用静态方法在运行时创建/修改配置。

方法

void __construct ( array $data = null )

array export ()

静态方法

Config factory ( array $data = null )

Config merge ( Config $c1 [ , Config $c2, ... ])

string toJson ( Config $c1 )

string toYaml ( Config $c1 )

bool writeToYaml ( string $filepath, Config $c, $findPath = false)

Config fromYaml ( string $yaml )

Config loadFromYaml ( string $filepath, bool $findPath = false, bool $relax = false )

抽象类 Env

常量

MODE_DEVELOPMENT

MODE_STAGING

MODE_PRODUCTION

静态方法

string getMode ( )

bool isKnownMode ( string $mode )

void setMode ( string $nextMode )
如果 $nextMode 无效,则抛出异常。

void autoset ( )
尝试检测有效的环境模式。如果检测失败,则抛出异常。

bool isNotProduction ( )

bool isProduction ( )

bool isStaging ( )

bool isDevelopment ( )

void loadConfigFromYaml ( string $filename = 'config.yaml', bool $findPath = true, bool $relax = true)

void configDefaults ( array $defaults )

静态属性

Config $config
通过 Env::loadConfigFromYaml() 加载的配置对象

MIT 许可证

版权所有 (c) 2016 Oliver Leics oliver.leics@gmail.com

特此授予任何获得此软件及其相关文档副本(以下简称“软件”)的人免费使用权,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供方提供软件的人这样做,前提是遵守以下条件

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

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、特定用途适用性和非侵权的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论这些责任是在合同、侵权或其他方式产生的,无论这些责任与软件或其使用或与其他方式有关。