$countries = Cache::get("countries", function() {{
expensive computation that returns a list of countries
return Country:all();
})
public static function get($key, $function = null)
{
if (!self::contains($key) && $function) {
self::put($key, call_user_func($function));
}
return Arrays::getValue(self::$_cache, $key);
}
/** * @test */ public function shouldCacheNullValues() { //given $function = function () { ++CacheTest::$call_count; return null; }; //when $result1 = Cache::get("id", $function); $result2 = Cache::get("id", $function); //then $this->assertEquals(1, CacheTest::$call_count); $this->assertNull($result1); $this->assertNull($result2); }