tomhart/array-from-object

v1.0.2 2019-12-10 17:54 UTC

This package is auto-updated.

Last update: 2024-04-11 04:03:31 UTC


README

Build Status codecov Scrutinizer Code Quality GitHub release (latest by date) GitHub

This library allows you to populate an array, pulling properties and nested properties from an object.

Usage

Simple example:

$params = ['name', 'id'];

$class = new \stdClass();
$class->name = 'name';
$class->id = 1;

$data = ArrayUtil::populateArrayFromObject($params, $class); 
// ['name' => 'name', 'id' => 1]

Nested example:

$params = ['name', 'id', 'extra->name'];

$class = new \stdClass();
$class->name = 'name';
$class->id = 1;

$class2 = new \stdClass();
$class2->name = 'name-2';
$class->extra = $class2;

$data = ArrayUtil::populateArrayFromObject($params, $class); 
// ['name' => 'name', 'id' => 1, 'extra->name' => 'name-2']

Providing missing data example:

$params = ['name', 'id', 'extra'];

$class = new \stdClass();
$class->name = 'name';
$class->id = 1;

$data = ArrayUtil::populateArrayFromObject($params, $class, [
    'extra' => 'static'
]); 
// ['name' => 'name', 'id' => 1, 'extra' => 'static']