BonOptions is a helper class to handle getting/setting actions.
$bonOptions = new BonOptions('My Info');$bonOptions->set('name', 'Amir Hossein');
echo $bonOptions->get('name'); // Amir Hossein$bonOptions->set(
array(
'age' => 25,
'city' => 'Tehran'
)
);
echo $bonOptions->get('city'); // Tehran
var_dump($bonOptions->get());
/*
array(4) {
["name"] => string(12) "Amir Hossein"
["age"] => int(26)
["city"] => string(6) "Tehran"
["gender"] => string(4) "Male"
}
*/
var_dump($bonOptions->get('name', 'city'));
/*
array(4) {
["name"] => string(12) "Amir Hossein"
["city"] => string(6) "Tehran"
}
*/$bonOptions->setReaderValidator(
function($key) {
if ($key == 'age') {
return false;
}
return true;
}
);
var_dump($bonOptions->get('age')); // NULL
$bonOptions->setReaderValidator(function($key){ return true; }); // Reset ReaderValidator
$bonOptions->setWriterValidator(
function($key, $value, $min, $max)
{
if ($key == 'age') {
return ($value >= $min && $value <= $max);
}
return true;
}, array(23, 27)
);
$bonOptions->set('age', 20);
echo $bonOptions->get('age'); // 25
$bonOptions->set('age', 30);
echo $bonOptions->get('age'); // 25
$bonOptions->set('age', 26);
echo $bonOptions->get('age'); // 26$bonOptions->gender = 'Male';
var_dump($bonOptions->gender); // NULL
var_dump(isset($bonOptions->gender)); // bool(false)
$bonOptions->hydration(true);
$bonOptions->gender = 'Male';
var_dump($bonOptions->gender); // string(4) "Male"
var_dump(isset($bonOptions->gender)); // bool(true)
$bonOptions->set('name', 'Amir Hossein');
var_dump($bonOptions->name); // string(12) "Amir Hossein"
var_dump($bonOptions->get('gender')); // string(4) "Male"
$bonOptions->hydration(false);
var_dump($bonOptions->gender); // NULL
var_dump($bonOptions->get('gender')); // string(4) "Male"$bonOptions->reset(); // $bonOptions is empty now$bonOptions->set('date', time());
echo $bonOptions->filter('date', function($time) {
return date('Y-m-d H:i', $time);
});$profile = new BonOptions('Profile');
$profile->set('name', 'TheName');
$bank = new BonOptions('Bank Info');
$bank->set('account', '47657789');
$options = array($profile, $bank);
foreach ($options as $bonOptions) {
if ($bonOptions->key() == 'Profile') {
echo 'Name: ' . $bonOptions->get('name'); // Name: TheName
}
if ($bonOptions->key() == 'Bank Info') {
echo 'Account No: ' . $bonOptions->get('account'); // Account No: 47657789
}
}class Config extends BonOptions
{
/**
* @static
* @access private
* @var Config Instance
*/
static private $self;
/**
* Constructor
*
* @access private
*/
public function __construct()
{
trigger_error('Contructor is not public. Please use Config::getInstance() instead.', E_USER_ERROR);
}
/**
* Get instance
*
* @static
* @return Config
*/
static public function getInstance()
{
if (!isset(self::$self)) {
self::$self = new BonOptions('Config');
}
return self::$self;
}
}
Config::getInstance()->set('name', 'Amir');
echo Config::getInstance()->get('name'); // AmirCreate New Instance
void __construct([string $keyName]);
- string $keyName (optional) Optional Key for object
- void
Setter
void set(array|string $key(s) [, mixed|null $value]);
- Two Arguments
- string $key key for option
- mixed $value Value for option
- One Argument
- array $keys Key/Value array to add to options
- void
Getter
mixed|array get([string $key1, string $key2 [,string $key3 [,…]]]);
- No Argument
- One Argument
- string $key Option key
- More Arguments
- string $key1 Option key 1
- string $key2 Option key 2
- ...
- No Argument
- array All options
- One Argument
- mixed Option value
- More Arguments
- array Values of given keys
Filter Data
mixed|array filter(array|string $key, callable $filterFunction [,array $filterArguments]);
- String key or Array Keys
- Function to call for each value
- Optional Arguments for filterFunction
- Filtered value(s) of given key(s)
Check for key
bool has(string $key);
- Key to check
- bool True if value exists and is accessible
Set validator function to call while getting
void setReaderValidator(callable $callable [, array $additionalArguments]);
- callable $callable Function to call
- array $additionalArguments Arguments to pass to callable function. First argument always is $key.
- void
Set validator function to call while setting
void setWriterValidator(callable $callable [, array $additionalArguments]);
- callable $callable Function to call
- array $additionalArguments Arguments to pass to callable function. First and second arguments always are $key and $value.
- void
Reset options storage
void reset();
- void
- void
To access options via instance properties.
bool hydration([bool $isHydration]);
- bool $isHydration Turn on/off hydration
- bool Hydration
Get/Set instance key
bool key([string $key]);
- string $key Instance Key
- string Current instance Key
GPL
Amir Hossein Hodjati Pour <me [at] Amir-Hossein.com>