loshmis/simple-config

简单的配置加载器

v1.0.1 2015-03-31 01:36 UTC

This package is auto-updated.

Last update: 2024-09-06 22:44:04 UTC


README

Build Status

Simple Config提供了一种方便且优雅的方式,可以从您的配置目录中加载多个配置文件,并且它受到了Laravel 5配置加载(实际上使用illuminate/config包来提供对配置数据的访问)的启发。它主要是为了为Slim Framework提供简单而强大的配置加载,但它可以与任何PHP应用程序一起使用。

安装

您可以通过在终端中键入以下命令来使用composer安装它

composer require loshmis/simple-config

或者,您可以将它包含到您的composer.json文件中

"require": {
    "loshmis/simple-config": "~1.0"
}

与Slim一起使用

如果您想与Slim PHP Framework一起使用它,可以这样做(我在我的index.php文件中放置它,我在那里实例化我的Slim应用程序,但您可以将其放置在任何您想要的位置,只需确保您已经提供了正确的配置路径)

//index.php

require 'vendor/autoload.php';

$app = new \Slim\Slim();

//path to your config directory
define('CONFIG_PATH', __DIR__ . '/config');

$app->container->singleton('config.loader', function($c) {
    return new \Loshmis\SimpleConfig\Loader (
        CONFIG_PATH,
        new Symfony\Component\Finder\Finder
    );
});

$app->container->singleton('config', function($c) {
    return new \Loshmis\SimpleConfig\Config($c['config.loader']);
});

然后,您可以像在Laravel 5(和4)应用程序中一样处理您的配置。

假设您在配置目录中有一个名为app.php的文件,在该文件中,您有以下的PHP代码

<?php

return [
    'name' => 'Test'
];

现在,如果您想从该配置文件中获取name的值,您可以这样做

//get data
$appName = $app->config->get('app.name');

//set data
$app->config->set('app.name', 'Simple Config')

// to check if configuration parameter is set
$app->config->has('app.name') //will return true in this case

您可以通过访问Laravel API 文档来找到所有可用的方法。

如果您对使用Laravel 4中的illuminate/config包感兴趣,有一些关于这个主题的优秀的博客文章

Slim的辅助方法

如果您想,您可以创建一个辅助函数,以便您可以轻松地处理配置数据。

您可以像这样定义函数(函数来自Laravel的源代码,并进行了一些修改以用于Slim框架)

function config($key = null, $default = null)
{
    $app = \Slim\Slim::getInstance();
    
    if (is_null($key)) return $app->config;

    if (is_array($key)) {
        return $app->config->set($key);
    }

    return $app->config->get($key, $default);
}

使用定义的辅助函数,您可以通过简单地调用

// to get some configuration data
$appName = config('app.name');

// to set some data
config(['app.name' => 'Simple Config'])

无需Slim PHP框架的使用

//path to your config directory
define('CONFIG_PATH', __DIR__ . '/config'); 

$loader = new \Loshmis\SimpleConfig\Loader (
    CONFIG_PATH,
    new Symfony\Component\Finder\Finder
);

$config = new \Loshmis\SimpleConfig\Config($loader);

在实例化Config类对象后,您可以像这样使用它

//get data
$appName = $config->get('app.name');

//set data
$config->set('app.name', 'Simple Config')

//...

许可证

Simple Config是开源软件,受MIT许可证许可。