Skip to content

Commit

Permalink
Added APC storage
Browse files Browse the repository at this point in the history
  • Loading branch information
olvlvl committed Jan 13, 2015
1 parent ea96e7f commit 10dcc52
Showing 1 changed file with 67 additions and 0 deletions.
67 changes: 67 additions & 0 deletions lib/APCStorage.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<?php

/*
* This file is part of the ICanBoogie package.
*
* (c) Olivier Laviale <[email protected]>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/

namespace ICanBoogie\Storage;

/**
* A storage using APC.
*/
class APCStorage implements StorageInterface
{
private $master_key;

public function __construct()
{
$this->master_key = md5($_SERVER['DOCUMENT_ROOT']);
}

/**
* @inheritdoc
*/
public function store($key, $data, $ttl=0)
{
apc_store($this->master_key . $key, $data, $ttl);
}

/**
* @inheritdoc
*/
public function retrieve($key)
{
$rc = apc_fetch($this->master_key . $key, $success);

return $success ? $rc : null;
}

/**
* @inheritdoc
*/
public function eliminate($key)
{
apc_delete($this->master_key . $key);
}

/**
* @inheritdoc
*/
public function clear()
{
apc_clear_cache();
}

/**
* @inheritdoc
*/
public function exists($key)
{
return apc_exists($this->master_key . $key);
}
}

0 comments on commit 10dcc52

Please sign in to comment.