pconfig
1.1
pconfig — это PHP-библиотека для анализа конфигурации. Он легкий и простой в использовании.
composer require oopsguy/ pconfig
<?php
use pconfig pconfig ;
use pconfig provider impl FileProvider ;
use pconfig serializer impl JSONSerializer ;
$ config = new pconfig ( ' config-file.json ' );
$ config = new pconfig ([
' file ' => ' config-file.json '
]);
$ config = new pconfig ([
' data ' => [
' key ' => ' value '
// more...
]
]);
$ config -> setSerializer ( new JSONSerializer ());
$ config -> setProvider ( new FileProvider ( ' config/a.json ' ));
$ config = new pconfig ([
' file ' => ' config-file.json ' ,
' serializer ' => new JSONSerializer (),
]);
$ config = new pconfig ([
' serializer ' => new JSONSerializer (),
' provider ' => new FileProvider ( ' config-file.json ' ),
]);
<?php
use pconfig pconfig ;
use pconfig serializer impl YAMLSerializer ;
use pconfig provider impl FileProvider ;
// PHP array
// Automatically detect file extension and select a suitable serializer
$ config = new pconfig ( " config/config.php " );
echo $ config -> get ( " app " );
$ config -> delete ( " version " );
$ config -> set ( ' debug ' , false );
$ config -> set ( " settings.key " , " new value " );
$ config -> save ();
// handle JSON
$ jsonConfig = new pconfig ( ' config/config.json ' );
$ jsonConfig -> set ( ' homepage ' , ' https://github.com ' );
// Save as temp.json file
$ jsonConfig -> setFile ( ' config/temp.json ' );
$ jsonConfig -> save ();
// Parsing YAML
// Explicitly specify a YAML serializer
$ serializer = new YAMLSerializer ();
$ provider = new FileProvider ( ' config/settings.yaml ' );
$ extConfig = new pconfig ([
' provider ' => $ provider ,
' serializer ' => $ serializer
]);
$ extConfig -> set ( ' type ' , ' yaml ' );
$ extConfig -> save ();
Разделителем ключей по умолчанию является точка .
.
key1.key2.key3
Вы можете использовать pconfig ::CONFIG_KEY_EXTRACT_SEPARATOR
чтобы настроить свой собственный разделитель.
pconfig ::CONFIG_KEY_EXTRACT_SEPARATOR => '-',
key1-key2-key3
<?php
use pconfig pconfig ;
use pconfig provider impl FileProvider ;
use pconfig serializer impl JSONSerializer ;
$ config = new pconfig ([
// Specify the serializer
' serializer ' => new JSONSerializer (),
' provider ' => new FileProvider ( ' config/config.php ' ),
' config ' => [
// Set the key separator
pconfig :: CONFIG_KEY_EXTRACT_SEPARATOR => ' - ' ,
]
]);
pconfig
реализовал интерфейс ArrayAccess
, вы можете получить доступ к конфигурации с помощью операций с массивом.
<?php
use pconfig pconfig ;
// Access by index
$ json = new pconfig ( ' ./config/arrayaccess.json ' );
$ json [ ' status ' ] = true ;
$ json [ ' data ' ] = [
' page ' => 1 ,
' pageSize ' => 10 ,
' pages ' => 2 ,
' total ' => 13 ,
' list ' => [
[
' username ' => ' oopsguy ' ,
' gender ' => '男'
]
]
];
$ json [ ' msg ' ] = ' ok ' ;
$ json [ ' delData ' ] = ' XHSYSYSDkoksoada8dsaidsa9d8adsa ' ;
// unset and isset API
var_dump ( isset ( $ json [ ' delData ' ]));
unset( $ json [ ' delData ' ]);
var_dump ( isset ( $ json [ ' delData ' ]));
// Save to file
$ json -> save ();
Вложенная конфигурация.
$ config -> set ( ' level1.level2.level3 ' , " Level end " );
$ config -> delete ( ' level1.level2 ' );
set($key, $value)
get($key[, $defult])
delete($key)
exists($key)
getConfig($key)
setConfig($key, $value)
setProvider($provider)
setSerializer($serializer)
setFile($path)
reload()
clear()
save()
Лицензия MIT