protected function hasAccessibleProperty($key)
    {
        if (isset($this->$key)) {
            $reflection = new ReflectionProperty($this, $key);

            return $reflection->isPublic();
        }

        return false;
    }