Skip to content

crodas/Memorandum

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Memorandum

A magic memoization function on steroids.

Motivation

Memoization stores the results of expensive function calls and returns the cached result when the same inputs occur again.

This library stores the result of a function. If any of the function's argument are files or folders, the result will be deemed as valid until any of those files or folders are either modified or removed.

Any function which involves I/O is destined to be slow, that's why Memorandum speeds up things by processing things only when necessary.

Usage

<?php

$function = memo(function($file) {
    sleep(10);
    return 'cached ouptut:' . $file;
});

$result = $function(__DIR__);
$result = $function(__DIR__);
// The function would be called once, and the output
// will be remembered until a new file is added to __DIR__
// or another file is removed.

About

A magic memoization function on steroids

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages