Chris@2: Chris@2: * Chris@2: * For the full copyright and license information, please view the LICENSE Chris@2: * file that was distributed with this source code. Chris@2: */ Chris@2: Chris@2: declare(strict_types=1); Chris@2: Chris@2: namespace SebastianBergmann\ObjectReflector; Chris@2: Chris@2: class ObjectReflector Chris@2: { Chris@2: /** Chris@2: * @param object $object Chris@2: * Chris@2: * @return array Chris@2: * Chris@2: * @throws InvalidArgumentException Chris@2: */ Chris@2: public function getAttributes($object): array Chris@2: { Chris@2: if (!is_object($object)) { Chris@2: throw new InvalidArgumentException; Chris@2: } Chris@2: Chris@2: $attributes = []; Chris@2: $className = get_class($object); Chris@2: Chris@2: foreach ((array) $object as $name => $value) { Chris@2: $name = explode("\0", (string) $name); Chris@2: Chris@2: if (count($name) === 1) { Chris@2: $name = $name[0]; Chris@2: } else { Chris@2: if ($name[1] !== $className) { Chris@2: $name = $name[1] . '::' . $name[2]; Chris@2: } else { Chris@2: $name = $name[2]; Chris@2: } Chris@2: } Chris@2: Chris@2: $attributes[$name] = $value; Chris@2: } Chris@2: Chris@2: return $attributes; Chris@2: } Chris@2: }