MVC/lib/Core/Entity.php
2024-08-23 14:41:51 +09:00

54 lines
1.3 KiB
PHP

<?php
namespace lib\Core;
abstract class Entity
{
private $_origins = [];
private $_values = [];
private $_isChanged = false;
private $_changedFields = [];
protected function __construct() {} //
final public function __get($key)
{
return $this->_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