pointybeard/property-bag

Set of classes for managing key/value pairs.

1.0.3 2018-11-11 12:19 UTC

This package is auto-updated.

Last update: 2024-05-19 21:00:09 UTC


README

Latest Stable Version License

Simplifies the task of storing key/value pairs.

Installation

Property Bag is installed via Composer. To install, use composer require pointybeard/property-bag or add "pointybeard/property-bag": "~1.0" to your composer.json file.

Usage Example

Here is a quick and dirty example of how to use this group of classes


include "vendor/autoload.php";

use pointybeard\PropertyBag\Lib;

$p = new Lib\PropertyBag;

$p->fruit = "apple";
$p->animal = new Lib\Property("animal", "lion");
$p->clothing = new Lib\ImmutableProperty("clothing", "hat");

var_dump($p);

$p->fruit = "banana";
var_dump($p->fruit, $p->animal->value);

try{
    $p->clothing = "belt";
    var_dump($p->clothing);

} catch (Lib\Exceptions\AttemptToChangeImmutablePropertyException $ex) {
    print "Oh oh! You can't change Immutable property 'clothing'" . PHP_EOL;
}

print_r($p->toArray());

$p2 = new Lib\PropertyBag;
$p2->username = "barry";
$p2->password = "blahblah";

$p->credentials = $p2;

var_dump(
    $p->toArray(),
    $p->credentials->value->username,
    $p->credentials->value->username->value
);

Support

If you believe you have found a bug, please report it using the GitHub issue tracker, or better yet, fork the library and submit a pull request.

Contributing

We encourage you to contribute to this project. Please check out the Contributing documentation for guidelines about how to get involved.

License

"Property Bag" is released under the MIT License.