cklamm / config
PHP 配置
1.0.1
2020-03-31 09:27 UTC
Requires
- php: ^7.2
Requires (Dev)
- phpunit/phpunit: ^8.5
This package is auto-updated.
Last update: 2024-09-29 05:22:20 UTC
README
这个小型库使得从PHP文件中读取配置变量变得容易。
内容
安装
可以通过Composer安装此库。
composer require cklamm/config
ConfigFile
这个类从单个PHP文件中读取配置变量,该文件必须返回一个关联数组。以下是一个示例。
<?php // config.php return [ 'foo' => 'bar', 'array' => ['a', 'b', 'c'], 'db.driver' => 'mysql', 'db.host' => 'localhost', 'db.port' => 3306, 'log.debug.db' => '*', 'log.debug.file' => '*', 'log.prod.db' => 'error,warning,info', 'log.prod.file' => 'error,warning,info', ];
文件名通过ConfigFile
的构造函数传递。
使用get($name)
方法访问配置变量。
- 如果
$name
等于*
,则返回整个数组。 - 如果
$name
作为键存在,则返回相应的值。 - 如果
$name
以.*
结尾,则返回一个包含所有以$name
开头(减去星号)的键的数组。从键中删除$name
部分。如果没有匹配的键,返回的数组将为空。 - 否则返回
null
。
<?php use cklamm\Config\ConfigFile; $config = new ConfigFile('config.php'); $config->get('foo'); // 'bar' $config->get('array'); // ['a', 'b', 'c'] $config->get('undefined'); // null $config->get('db.driver'); // 'mysql' $config->get('log.prod.db'); // 'error,warning,info' $config->get('*'); // all entries $config->get('db.*'); // all entries whose key starts with db. $config->get('log.prod.*'); // all entries whose key starts with log.prod.
ConfigFolder
这个类从包含多个PHP文件的文件夹中读取配置变量。每个文件必须返回一个关联数组。例如,我们可以在config
文件夹中放置以下两个文件。
<?php // config/db.php return [ 'driver' => 'mysql', 'host' => 'localhost', 'port' => 3306, ];
<?php // config/log.php return [ 'debug.db' => '*', 'debug.file' => '*', 'prod.db' => 'error,warning,info', 'prod.file' => 'error,warning,info', ];
文件夹名通过ConfigFolder
的构造函数传递。
使用get($name)
方法访问配置变量。在第一个.
之前的部分与文件名对应。
- 如果
$name
中不包含.
,则返回null
。 - 如果没有相应的文件存在,则返回
null
。 - 否则,其行为类似于
ConfigFile
的get
方法。
<?php use cklamm\Config\ConfigFolder; $config = new ConfigFolder('config'); $config->get('db.driver'); // 'mysql' $config->get('log.prod.db'); // 'error,warning,info' $config->get('*'); // null $config->get('db'); // null $config->get('db.*'); // all entries from config/db.php $config->get('log.prod.*'); // all entries from config/log.php // whose key starts with prod.