public function setOption($name, $value)
{
$method = 'set' . $name;
if (method_exists($this, $method)) {
call_user_func(array($this, $method), $value);
} elseif (property_exists($this, $name)) {
$this->{$name} = $value;
} else {
$this->options[$name] = $value;
}
return $this;
}