iautomation/dynamic-object

Array and Object access at the same time, with save and change callbacks

dev-master 2015-09-27 23:18 UTC

This package is not auto-updated.

Last update: 2024-04-17 08:30:03 UTC


README

Array and Object access at the same time, with save and change callbacks

Implements ArrayAccess and Iterator, and uses PHP's magic methods in order to acheive a class instance accessible as an object and an array. Iterating is supported.

Methods

public function __construct($data=[], $save_callback=null, $change_callback=null)
public function &__get ($key) 
public function __set($key, $value) 
public function __isset ($key) 
public function __unset($key) 
public function offsetSet($offset,$value) 
public function offsetExists($offset) 
public function offsetUnset($offset) 
public function offsetGet($offset) 
public function __call($method, $args) 
public function __invoke($args=[])
public function rewind() 
public function current() 
public function key() 
public function next() 
public function valid() 
public function setChangeCallback($change_callback=null) 
public function setSaveCallback($save_callback=null) 
public function save()
public function dataArray() 
public function dataObject() 
public function changesArray() 
public function changesObject() 

Basic Usage

include 'vendor/autoload.php';

$data = [
	'one'=>1
];
$save_callback = function($class, $changes){
	echo "\n".'Saved:'."\n";
	print_r($changes);
};
$change_callback = function($class, $key, $value){
	echo "\n".'Changed:'."\n".$key.':'.$value;
};
$object = new \DynamicObject\DynamicObject($data, $save_callback, $change_callback);
$object->two = 2;
$object['three'] = 3;
$object->save();

print_r($object->dataArray());
print_r($object->changesArray());