mirror of
https://github.com/DesignPatternsPHP/DesignPatternsPHP.git
synced 2025-07-28 10:40:17 +02:00
50 lines
1014 B
PHP
50 lines
1014 B
PHP
<?php
|
|
|
|
namespace DesignPatterns\Structural\Proxy;
|
|
|
|
class RecordProxy extends Record
|
|
{
|
|
/**
|
|
* @var bool
|
|
*/
|
|
private $isDirty = false;
|
|
|
|
/**
|
|
* @var bool
|
|
*/
|
|
private $isInitialized = false;
|
|
|
|
/**
|
|
* @param array $data
|
|
*/
|
|
public function __construct(array $data)
|
|
{
|
|
parent::__construct($data);
|
|
|
|
// when the record has data, mark it as initialized
|
|
// since Record will hold our business logic, we don't want to
|
|
// implement this behaviour there, but instead in a new proxy class
|
|
// that extends the Record class
|
|
if (count($data) > 0) {
|
|
$this->isInitialized = true;
|
|
$this->isDirty = true;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param string $name
|
|
* @param string $value
|
|
*/
|
|
public function __set(string $name, string $value)
|
|
{
|
|
$this->isDirty = true;
|
|
|
|
parent::__set($name, $value);
|
|
}
|
|
|
|
public function isDirty(): bool
|
|
{
|
|
return $this->isDirty;
|
|
}
|
|
}
|