Freeze values in objects
Requires PHP 5.4 or above.
<?php
use Clippings\Freezable\FreezableTrait;
class Item {
use FreezableTrait;
private $value = NULL;
public function performFreeze()
{
$this->value = $this->computeValue();
}
public function performUnfreeze()
{
$this->value = NULL;
}
private function computeValue()
{
// computation from external sources, database, other objects etc.
return pi() * pi();
}
public function getValue()
{
return $this->isFrozen() ? $this->value : $this->computeValue();
}
}
Copyright (c) 2014, Clippings Ltd. Developed by Ivan Kerin & Haralan Dobrev
Under BSD-3-Clause license, read LICENSE file.