public function setProps($props)
    {
        if (! is_array($props) && ! ($props instanceof \Traversable)) {
            return $this;
        }
        foreach ($props as $name => $value) {
            $this->set($name, $value);
        }

        return $this;
    }