1. Go to this page and download the library: Download vshf/php-config library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
vshf / php-config example snippets
$settings = new \VSHF\Config\Config();
$settings = new \VSHF\Config\Config([
'setting1' =>'value1',
'setting2' =>'value2'
]);
foreach ($collection as $itemId => $item) {
$settings->hydrateResource(
[
'isPriced' => TRUE,
// other properties
],
'services', // Context
$itemId // Resource ID
);
}
// In the main context:
$settings->registerObserver('settingId', MyObserver::class);
// In a custom context
$settings->registerObserver('settingId', MyObserver::class, 'myContext');
// Observing multiple settings with a single observer:
$settings->registerObserver('settingA', MyObserver::class);
$settings->registerObserver('settingB', MyObserver::class);
$settings->registerObserver('propertyId', MyPropertyObserver::class, 'services');
// Observing multiple properties with a single observer:
$settings->registerObserver('propertyA', MyPropertyObserver::class, 'services');
$settings->registerObserver('propertyB', MyPropertyObserver::class, 'services');
// From the main context:
$settings->get('settingA');
// From a custom context:
$settings->get('settingA', 'myContext');
// In the main context:
$settings->save('settingA', 'newValue');
// In a custom context:
$settings->save('settingA', 'newValue', 'myContext');
// Inside settingA's observer class
public static function dependencies(){
$dependency = new \VSHF\Config\Dependency();
$dependency
->on('settingB')
->beingEqualTo('certainValue')
;
return $dependency;
}
$dependency = new \VSHF\Config\Dependency();
// AND
$dependency
->on('settingB')
->beingEqualTo('certainValue')
->and('settingC')
->beingTruthy()
;
// OR
$dependency
->on('settingB')
->beingEqualTo('certainValue')
->or('settingC')
->beingTruthy()
;
//INVALID, triggers an error
$dependency
->on('settingB')
->beingEqualTo('certainValue')
->and('settingC')
->beingTruthy()
->or('settingD')
->beingFalsy()
;
/*
* This is equal to:
* settingB === certainValue && (
* settingC || !settingD
* )
*/
$dependency
->on('settingB')
->beingEqualTo('certainValue')
->andGroup()
->on('settingC')
->beingTruthy()
->or('settingD')
->beingFalsy()
->endGroup()
;
/*
* This is equal to:
* settingB === certainValue || (
* settingC && !settingD
* )
*/
$dependency
->on('settingB')
->beingEqualTo('certainValue')
->orGroup()
->on('settingC')
->beingTruthy()
->and('settingD')
->beingFalsy()
->endGroup()
;