laradic/config

Laravel 5 配置扩展:保存到文件/数据库。使用命名空间等

2.0.0 2020-12-10 15:46 UTC

This package is auto-updated.

Last update: 2024-09-10 23:41:30 UTC


README

GitHub Version Total Downloads License

版本 1.3

功能

  • 命名空间配置(类似于 Laravel 4:Config::get('vendor/package::config.item')
  • 命名空间发布(类似于 Laravel 4:config/packages/VENDOR/PACKAGE/config.php
  • 或者使用标准的 Laravel 5 方法:与 Laravel 5 默认配置兼容。添加此包不会使您的当前设置无效。
  • 持久性配置。将更改保存到 镜像 文件数据库
  • Config::getLoader()->set('iam/awesome::my.config.key', 'A changed value') 将其保存到 镜像 文件db
  • 支持 PHPYAML,不久还将支持 XML 配置文件。

概述 ^

安装 ^

Composer
"laradic/config": "1.3.*"
服务提供者
"Laradic\Config\ConfigServiceProvider"
引导器

app/Http/Kernel.phpapp/Console/Kernel.php 中用 Laradic\Config\Bootstrap\LoadConfiguration 引导器替换默认的 Laravel Illuminate\Foundation\Bootstrap\LoadConfiguration 引导器。

use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel {
    protected $bootstrappers = [
        'Illuminate\Foundation\Bootstrap\DetectEnvironment',
        'Laradic\Config\Bootstrap\LoadConfiguration',
        'Illuminate\Foundation\Bootstrap\ConfigureLogging',
        'Illuminate\Foundation\Bootstrap\HandleExceptions',
        'Illuminate\Foundation\Bootstrap\RegisterFacades',
        'Illuminate\Foundation\Bootstrap\RegisterProviders',
        'Illuminate\Foundation\Bootstrap\BootProviders',
    ];
}

基本用法 ^

在任何 ServiceProvider 中

class YourServiceProvider extends ServiceProvider
{
    use ConfigProviderTrait;

    public function register()
    {
        $this->addConfigComponent('vendorname/packagename', 'vendorname/packagename', realpath(__DIR__.'/../resources/config'));    
    }
}
  • 命名空间配置可以使用 Config::get('vendorname/packagename::config.item') 访问。
  • 使用默认的 Laravel vendor:publish 命令发布配置文件。

持久性配置 ^

您可以通过设置持久性配置项,默认情况下,值将保存到一个单独的镜像文件中,在引导时进行合并。也可以保存到数据库中。

您可以在配置文件中通过更改 [loader] 值来更改保存方法。

return array(
    'loader' => 'file',
    'loaders' => array(
        'file' => array(
            'save_path' => storage_path('laradic_config')
        ),
        'db' => array(
            'table' => 'config'
        )
    ),
    //.... other options
);

重要:如果您计划使用 db 加载器,您必须运行包含的迁移,该迁移将创建所需的 config 数据库表。

您可以通过以下方式设置持久性配置值

Config::getLoader()->set('config.item', 'value');

待办事项 ^

  • 支持 YAML/YML 文件。
  • 数据库保存
  • 支持 XML 文件。
  • 单元测试

版权/许可 ^

版权 2015 Robin Radic - MIT 许可