Skip to content

Latest commit

 

History

History
58 lines (42 loc) · 1.71 KB

README.md

File metadata and controls

58 lines (42 loc) · 1.71 KB

Freezable

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Latest Unstable Version Total Downloads License

Freeze values in objects

Requires PHP 5.4 or above.

Usage

<?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();
    }
}

License

Copyright (c) 2014, Clippings Ltd. Developed by Ivan Kerin & Haralan Dobrev

Under BSD-3-Clause license, read LICENSE file.