g4mr / configs
配置加载类,用于将不同类型的文件加载到数组数据中
1.1.0
2015-12-15 17:39 UTC
Requires
- igorw/get-in: 1.0.*
- league/flysystem: 1.0.*
- symfony/yaml: 2.7.*
Requires (Dev)
- phpunit/phpunit: 4.0.*
This package is not auto-updated.
Last update: 2024-10-02 18:15:46 UTC
README
#G4MR\Configs
这是一个简单的库,允许您将配置文件加载为数组数据,并通过点符号访问数据。我创建这个库是为了简化加载 YAML 配置文件的过程,并使实现自己的配置加载器变得容易。
Composer
使用 composer 通过 composer require g4mr/configs
安装
示例 1
<?php use G4MR\Configs\Config; use G4MR\Configs\Loaders\YamlLoader; $config = new Config(new YamlLoader(__DIR__ . '/config')); //loads ./config/database.yml as an array block $db_config = $config->get('database', false); if($db_config !== false) { echo $db_config['dbname']; }
示例 2 - 使用项目对象
<?php use G4MR\Configs\Config; use G4MR\Configs\Loaders\YamlLoader; $config = new Config(new YamlLoader(__DIR__ . '/config')); //example using stash (http://www.stashphp.com) caching $pool = new Stash\Pool(); $db_stash = $pool->getItem('db/config'); $db_config = $db_stash->get(); if($db_stash->isMiss()) { $db_config = $config->getItem('database'); $db_stash->set($db_config, 60 * 5); //cache data for 5 minutes } $dbname = $db_config->get('dbname', null); $dbuser = $db_config->get('username', null); $dbpass = $db_config->get('password', null); $dbhost = $db_config->get('host', 'localhost');
示例 3 - 更新项目数组
<?php use G4MR\Configs\Config; use G4MR\Configs\Loaders\YamlLoader; $config = new Config(new YamlLoader(__DIR__ . '/config')); //loads ./config/database.yml as an item object $db_config = $config->getItem('database'); $db_config->set('db.user', 'root'); $db_config->set('db.pass', 'root'); $db_config->set('db.host', 'localhost'); $db_config->set('db.name', 'mydatabase'); $dbhost = $db_config->get('db.user'); // 'root'
您还可以执行类似的操作
<?php use G4MR\Configs\Config; use G4MR\Configs\Loaders\YamlLoader; $config = new Config(new YamlLoader(__DIR__ . '/config')); //loads ./config/connection.yml as an item object $conn = $config->getItem('connection'); $conn->db = [ 'host' => 'localhost', 'user' => 'root', 'pass' => 'root', 'name' => 'dbname' ]; print_r($conn->get('db')); //echo $conn->get('db.user'); //or print_r($conn->db);
自定义加载器
查看测试文件夹中的示例,了解如何实现自己的配置加载器。