public function __unset($name)
{
$setter = 'set' . $name;
if (method_exists($this, $setter)) {
$this->{$setter}(null);
} elseif (method_exists($this, 'get' . $name)) {
throw new InvalidCallException('Unsetting read-only property: ' . get_class($this) . '::' . $name);
}
}