public function testTransformKeys() { $object = <<<OBJ { "first-name": "Frankie", "surname": "Manning", "meta": { "created-at": "2015-01-01", "updated-at": "2015-02-01" }, "associates": [ { "first-name": "Ella", "surname": "Fitzgerald" }, { "first-name": "Chick", "surname": "Webb" } ] } OBJ; $expected = <<<OBJ { "first_name": "Frankie", "surname": "Manning", "meta": { "created_at": "2015-01-01", "updated_at": "2015-02-01" }, "associates": [ { "first_name": "Ella", "surname": "Fitzgerald" }, { "first_name": "Chick", "surname": "Webb" } ] } OBJ; $object = $this->toObject($object); $actual = ObjectUtils::transformKeys($object, function ($key) { return is_int($key) ? $key : str_replace('-', '_', $key); }); $this->assertEquals($this->toObject($expected), $actual); $this->assertSame($object, $actual); $this->assertSame($object->meta, $actual->meta); }
/** * @param callable $transform * @return $this */ public function transformKeys(callable $transform) { ObjectUtils::transformKeys($this->getProxy(), $transform); return $this; }