get($key); } else { $data = false; } // ignore cache? pass false if ($data !== false) { // if exists, serve cached data // if cashed data exist // --------------------------------------------------------------------- # if (!PRODUCTION) Benchmark::add_spot('proxy-cached'); if ($data == '_ERROR_') return false; // previous cached error else return $data; // previous cache () } else { // else (not exist)... // no data on cache -> get data from Class::method( arguments ) // --------------------------------------------------------------------- $data = call_user_func_array($callable, $args); // handle newly created data // --------------------------------------------------------------------- // if faulty data, return false if ($data == false) { if ($cache_errors && !$do_not_cache) { // cache the error $cache->set($key, '_ERROR_', $ttl); } # if (!PRODUCTION) Benchmark::add_spot('proxy-new-error'); return false; } // store to cache if (!$do_not_cache) { $cache->set($key, $data, $ttl); } # if (!PRODUCTION) Benchmark::add_spot('proxy-new'); return $data; // serve data } }