maximaster / lazy-scalar
Package provides lazy value objects which promise to return a specific scalar value
1.0.0
2025-04-17 10:30 UTC
Requires
- php: >=8.1
Requires (Dev)
- kahlan/kahlan: ^5.2
- phpstan/phpstan: ^1.10
- symplify/easy-coding-standard: ^12.5
README
The package provides lazy value objects which promise to return a specific scalar value.
Supported scalars:
- int (LazyInt);
- float (LazyFloat);
- bool (LazyBool);
- string (LazyString);
Installation
composer require maximaster/lazy-scalar
Usage Example
<?php
use Maximaster\LazyScalar\LazyScalar\LazyInt;
use Maximaster\LazyScalar\LazyScalar\LazyBool;
use Maximaster\LazyScalar\LazyScalar\LazyFloat;
use Maximaster\LazyScalar\LazyScalar\LazyString;
$lazyInt = new LazyInt(fn() => 42);
// Value not computed yet.
echo $lazyInt->isComputed(); // false
// Now it's computed.
echo $lazyInt->getValue(); // 42
echo $lazyInt->isComputed(); // true
// Will return cached value.
echo $lazyInt->getValue(); // 42
// Other types work similarly.
$lazyBool = new LazyBool(fn() => true);
$lazyFloat = new LazyFloat(fn() => 3.14);
$lazyString = new LazyString(fn() => "Hello");
Contributing
composer qabefore submitting a pull request;