public function __set($property, $value) { if (!$this->_isValidProperty($property)) { throw new InvalidArgumentException($property . ' is not a valid property'); } $this->_data[$property] = $value; $this->_dirty[$property] = true; }