koktut / php-memoize
Memoization functions result
This package's canonical repository appears to be gone and the package has been frozen as a result.
dev-master
2020-10-09 09:59 UTC
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- mikey179/vfsstream: ~1
- phpunit/phpunit: *
- squizlabs/php_codesniffer: 2.*
This package is auto-updated.
Last update: 2024-03-09 17:01:02 UTC
README
Implementation of memoization on PHP
Install
composer require koktut/php-memoize
Usage
use \PhpMemo\MemoryCache;
use \PhpMemo\DiskCache;
$slowFunction = function ($val1, $val2) {
// do something slow
sleep(1);
return $val1 + $val2;
};
$memo = new MemoryCache(); // or $memo = new DiskCache(sys_get_temp_dir());
$func= $memo->memoize($slowFunction);
// first call
echo $func(1, 2) . ' ' . sprintf("%f\n", $memo->getLastOpTime()); // 3 1.000000
// second call
echo $func(1, 2) . ' ' . sprintf("%f\n", $memo->getLastOpTime()); // 3 0.000000