Craft Roulette needed some simple data caching and this is what I came up with. It’s not great, but it does the trick.
It lives in a single file and is targeted towards quick and simple apps that just need a little caching. There are much, much better PHP caching libraries out there (like Stash or Cache) for heavy duty caching requirements.
<?php require_once 'vault.php'; // Setup vault with APC as the storage engine. Vault::setup( 'APC' ); // Store something with a default lifespan (3600 seconds). Vault::store( 'my_key', 'hello, world' ); // Fetch it. echo Vault::fetch( 'my_key' ); // Clear the cache. Vault::clear();
Items stored with Vault will expire after 1 hour, but this can be altered when storing items in the cache.
<?php // Store something for a couple of seconds. Vault::store( 'short_lived_key', 'I will be gone soon', 3 ); // Show it exists. echo Vault::fetch( 'short_lived_key' ); # => "I will be gone soon" // Wait until this item has expired. sleep( 4 ); echo Vault::fetch( 'short_lived_key' ); # => null