protected function getPublicPropertyNames($object) { $refl = new ReflectionObject($object); return array_map(function ($prop) { return $prop->getName(); }, $refl->getProperties(ReflectionProperty::IS_PUBLIC)); }