, (*1)
Overview
Optionally is a keyed store of booleans. It can be used for anything but usually to store options., (*2)
Installation
Via Composer:, (*3)
composer require aviator/optionally
Testing
Via Composer:, (*4)
composer test
Usage
Instantiate Optionally with or without an array. You can add the array later with add() or replaceWith() (see below)., (*5)
The array should have string keys and boolean values. It's important to note that any pairs with non-string keys and non-boolean values will be silently discardedâthey will not be coerced., (*6)
$options = Optionally::make([
'option1' => true,
'option2' => false,
0 => false,
'test' => 'value'
]);
// [0 => false] and ['test' => 'value'] will be discarded.
Get the underlying array with all():, (*7)
$options->all();
// ['option1' => true, 'option2' => false]
Get the keys of the underlying array with keys():, (*8)
$options->keys();
// ['option1', 'option2']
Get the value of a key if it exists (or null if it doesn't) with get():, (*9)
$options->get('option1');
// true
$options->get('someOptionThatDoesntExist');
// null
Find whether or not a key exists with has():, (*10)
$options->has('option2');
// true
$options->has('someOptionThatDoesntExist');
// false
Trash the existing options and replace them with replaceWith():, (*11)
$options->replaceWith(['option3' => true, 'option4' => false]);
$options->all();
// ['option3' => true, 'option4' => false]
Add a new array to the existing options array, overwriting existing keys with add():, (*12)
$options->add(['option1' => false, 'option3' => true]);
$options->all();
// ['option1' => false, 'option2' => false, 'option3' => true]
Set a single key value pair with set():, (*13)
$options->set('option3', false);
$options->all();
// ['option1' => true, 'option2' => false, 'option3' => false]
Trash a single key value pair with remove():, (*14)
$options->remove('option1');
$options->all();
// ['option2' => true]
An instance of Optionally is iterable:, (*15)
foreach ($options as $key => $value) {
/* ... */
}
It's also countable:, (*16)
count($foreach);
// 2
Other
License
This package is licensed with the MIT License (MIT)., (*17)