for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* Memcache wrapper
*
* @package TheyWorkForYou
*/
namespace MySociety\TheyWorkForYou;
class Memcache {
static $memcache;
public function __construct() {
if (!self::$memcache) {
if (class_exists('\Memcached')) {
self::$memcache = new \Memcached;
self::$memcache->addServer('localhost', 11211);
} else {
self::$memcache = new \Memcache;
self::$memcache->connect('localhost', 11211);
}
public function set($key, $value, $timeout = 3600) {
self::$memcache->set(OPTION_TWFY_DB_NAME.':'.$key, $value, $timeout);
self::$memcache->set(OPTION_TWFY_DB_NAME.':'.$key, $value, MEMCACHE_COMPRESSED, $timeout);
public function get($key) {
// see http://php.net/manual/en/memcache.get.php#112056 for explanation of this
$was_found = false;
$value = self::$memcache->get(OPTION_TWFY_DB_NAME.':'.$key, null, $was_found);
$value = self::$memcache->get(OPTION_TWFY_DB_NAME.':'.$key, $was_found);
if ($was_found === false) {
$was_found === false
true
return false; // mmmmm
return $value;