_values[$key]; } final public function __set($key, $value) { if (array_key_exists($key, $this->_values)) { // echo "{$this->_values[$key]} !== {$value}"; if ($this->_values[$key] !== $value) { $this->_isChanged = true; $this->_changedFields[] = $key; $this->_origins[$key] = $this->_values[$key]; $this->_values[$key] = $value; } } else { $this->_isChanged = true; $this->_changedFields[] = $key; $this->_origins = $this->_values; $this->_values[$key] = $value; } } final public function isChanged() { return $this->_isChanged; } final public function clearChangedFields() { $this->_isChanged = false; $this->_changedFields = $this->_values; } final public function getChangedFields(): array { return $this->_changedFields; } final public function getOrigins(): array { return $this->_origins; } } //Class