src/Base/Model.php
public function attributes()
    {
        try {
            $class = new ReflectionClass($this);
            $names = [];
            foreach ($class->getProperties(\ReflectionProperty::IS_PUBLIC) as $property) {
                if (!$property->isStatic()) {
                    $names[] = $property->getName();
                }
            }
        } catch (\ReflectionException $exception) {
            Reaction::error($exception);
            $names = [];
        }

        return $names;
    }
public function attributes()
    {
        try {
            $class = new ReflectionClass($this);
            $names = [];
            foreach ($class->getProperties(\ReflectionProperty::IS_PUBLIC) as $property) {
                if (!$property->isStatic()) {
                    $names[] = $property->getName();
                }
            }
        } catch (\ReflectionException $exception) {
            Reaction::error($exception);
            $names = [];
        }

        return $names;
    }
Returns the list of attribute names.
By default, this method returns all public non-static properties of the class.
You may override this method to change the default behavior.
@return array list of attribute names.