此包已被弃用且不再维护。作者建议使用 pragmarx/yaml 包。

一个简单的 Laravel YAML 配置文件加载器,受到 illuminate/config 的启发。

v3.0.0 2018-06-21 09:24 UTC

This package is auto-updated.

Last update: 2019-09-28 13:26:38 UTC


README

此包已被弃用且不再维护。作者建议使用 pragmarx/yaml 包。

Laravel YAML 配置加载器

Build Status

这为 Laravel 提供了简单的 YAML 配置加载功能。它从 illuminate/config 包中汲取了很多灵感,并使用 Symfony YAML 解析器。

这并不是 Laravel 内置 PHP 配置文件系统的替代品,而是一个额外的“层”配置。这允许你拥有一个或多个类似 Ruby 的 config.yaml 文件,包含应用的可配置配置。

默认情况下,该包假设你的 YAML 文件位于 base_path() 目录中,但你可以通过发布包配置文件(config-yaml.php)到你的应用并更改 yaml_path 键来自定义此设置。

安装

通过 Composer 安装

$ composer require jameswmcnab/config-yaml

发布包配置(可选)

如果你想要自定义包配置,发布包配置然后编辑新创建的 config/config-yaml.php 文件。

$ php artisan vendor:publish --provider=ConfigYamlServiceProvider

使用方法

示例 YAML 文件

# Example YAML config.yaml file
app:
  name: "Great App"
  version: 1.0.2

log:
  dir: /var/log/vendor/app
  level: debug

database:
  adapter: mysql
  database: app_live
  username: user
  password: password

使用外观

注意:请记住在 app.php 配置中注册外观。

ConfigYaml::get('config.database.adapter'); // mysql

使用依赖注入

如果你不想使用外观,可以直接注入 Jameswmcnab\ConfigYaml\RepositoryInterface 到任何支持依赖注入的地方,并直接使用它。

<?php

namespace App\Foo;

use Jameswmcnab\ConfigYaml\RepositoryInterface;

class FooBar
{
    /**
     * @var RepositoryInterface
     */
    private $yamlConfig;

    /**
     * FooBar constructor.
     *
     * @param RepositoryInterface $yamlConfig
     */
    public function __construct(RepositoryInterface $yamlConfig)
    {
        $this->yamlConfig = $yamlConfig;
    }

    /**
     * @return array|string
     */
    private function getDatabaseAdapter()
    {
        return $this->yamlConfig->get('config.database.adapter');  // mysql
    }
}

运行测试

要运行包测试

$ vendor/bin/phpspec run
$ vendor/bin/phpunit