dehare/config-loader-service

此软件包已被弃用,不再维护。未建议替代软件包。

将多格式配置加载到Symfony/Silex的服务

v1.1.1 2014-07-18 07:27 UTC

This package is not auto-updated.

Last update: 2018-03-08 14:41:41 UTC


README

另一个支持多种文件格式和导入的Silex/Symfony配置服务。还支持跨格式加载。

Latest Stable Version

安装

将以下行添加到您的composer.json中

"require": {
    [...]
    "dehare/config-loader-service": "1.1.*@dev"
    [...]
}

用法

在Silex中注册为服务

由于这是一个服务,您应该以任何您认为合适的方式使用share方法。

    use Dehare\Symfony\ConfigLoaderService\ConfigLoaderService;

    $app['service.config'] = $app->share(function()
    {
        return new ConfigLoaderService('/dir/to/config', 'yml');
    });

在Symfony中注册

services:
    service.config:
        class: Dehare\Symfony\ConfigLoaderService\ConfigLoaderService
        arguments: [%kernel.root_dir%/config, %default_format%]

使用服务

现在您可以通过以下方式在整个应用程序中使用它

    // silex
    $app['service.config']->get('config_database');

    // symfony
    $this->get('service.config')->get('config_database');

务必阅读源代码以获取有关使用服务的更多提示。

文件格式

服务允许以下格式的配置

  • JSON
  • PHP
  • YAML/YML

默认格式是YML。

服务是宽容的,将优先使用请求的文件扩展名而不是格式。请参阅示例以获取详细信息。

导入

也支持Symfony的Import-resource模式(所有格式)。请注意,结果将被合并。因此,在定义键时请小心。

您可以在导入中提供不同的文件格式!

示例

YAML

host: localhost
user: myuser
password: mypassword

JSON

{
    "variable1": "value",
    "array": {
        { "variable": "value" },
        { "variable": "value" }
    }
}

PHP

<?php
return array(
    'variable' => 'value',
    'array' => array(
        array('variable', 'variable1'),
    ),
)

导入(与任何格式兼容)

imports:
    - { resource: 'file' }
    - { resource: 'file.php' }
    - { resource: 'file.json' }

variables:
    variable1: value

解析配置

index.php (Silex)

    [...]
    $app = new Silex\Application();

    $app['service.config'] = $app->share(function()
    {
        return new ConfigLoaderService('/dir/to/config', 'yml');
    });
    [...]

example.class.php:

    [...]
    $file = 'params1';
    $format = 'yaml';
    $dir = '/examples'; // => /dir/to/config/examples

    $app['service.config']->get($example_params, $format, $dir);
    [...]

宽容

以下将搜索config.yml而不是config.php / config.yml.php。

$app['service.config']->get('config.yml', 'php');

许可

版权所有 (c) 2014 Valentijn Verhallen contact@valentijn.co

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

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

本软件按照“原样”提供,不提供任何形式的保证,无论是明确的还是隐含的,包括但不限于适销性、适用于特定目的和不侵犯知识产权的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任承担责任,无论这些责任是由于合同、侵权或其他方式产生的,以及与软件或其使用或其他与软件相关的行为有关。