masnathan/object

该包已被弃用,不再维护。未建议替代包。

超级对象,可以处理你抛给它的一切...或者几乎所有东西。

v1.1.0 2019-03-22 18:43 UTC

This package is not auto-updated.

Last update: 2020-08-21 19:14:46 UTC


README

Latest Version on Packagist Software License Build Status Total Downloads

超级对象,可以处理你抛给它的一切...

安装

通过Composer

$ composer require masnathan/object

使用

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'

假设你有一个这样的数组

$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),
		// (...)
	)
);

使用SuperObject类,你可以这样访问它的信息

$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
}

你也可以检索SuperObject的内容,作为一个array或一个StdClass

$object->toArray(); // array( ... )
$object->toObject(); // StdClass( ... )

甚至可以序列化和反序列化对象

unserialize(serialize($object));
// or as json
json_decode(json_encode($object));

变更日志

请参阅CHANGELOG获取更多最近更改的信息。

测试

$ composer test

贡献

请参阅CONTRIBUTING以获取详细信息。

安全

如果你发现任何安全相关的问题,请通过电子邮件andre.r.flip@gmail.com报告,而不是使用问题跟踪器。

鸣谢

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。