Object
, (*1)
Super Object that can handle everything you throw at him..., (*2)
Install
Via Composer, (*3)
``` bash
$ composer require masnathan/object, (*4)
## Usage
``` php
use MASNathan\SuperObject;
$object = new SuperObject();
$object->setMode('live');
$object->set('mode', 'live');
$object->mode = 'live';
$object['mode'] = 'live';
echo $object->getAppMode() // 'live'
echo $object->get('app_mode') // 'live'
echo $object->app_mode // 'live'
echo $object['mode'] // 'live'
So... let's suppose you have an array like this:, (*5)
$myBigDataArray = array(
'details' => array(
'first_name' => 'André',
'last_name' => 'Filipe',
'email' => 'andre.r.flip@gmail.com',
'social' => array(
'github' => 'https://github.com/MASNathan',
'twitter' => 'https://twitter.com/masnathan'
)
),
'account_info' => array(
'admin' => true,
'last_login' => 2015-06-13 13:37:00
)
'cart_items' => array(
array('id' => 1337),
// (...)
)
);
Using the SuperObject class you can access it's information like this:, (*6)
$object = new SuperObject($myBigDataArray);
echo $object->getDetails()->getFirstName(); // 'André'
$object->getDetails()->isLastName('Roque'); // false
echo $object->getDetails()->getSocial()->getGithub(); // 'https://github.com/MASNathan'
echo $object->getDetails()->getSocial()->getFacebook(); // ''
$object->getAccountInfo()->isAdmin(); // true
$object->getAccountInfo()->unsetLastLogin(); // unsets $myBigDataArray['account_info']['last_login']
foreach ($object->getCartItems() as $item) {
echo $item->getId(); // 1337
}
You can also retrive the contents of the SuperObject as an array or a StdClass:, (*7)
$object->toArray(); // array( ... )
$object->toObject(); // StdClass( ... )
And even serialize/ deserialize the object, (*8)
unserialize(serialize($object));
// or as json
json_decode(json_encode($object));
Change log
Please see CHANGELOG for more information what has changed recently., (*9)
Testing
bash
$ composer test, (*10)
Contributing
Please see CONTRIBUTING for details., (*11)
Security
If you discover any security related issues, please email andre.r.flip@gmail.com instead of using the issue tracker., (*12)
Credits
License
The MIT License (MIT). Please see License File for more information., (*13)