Files
fusionpbx/resources/classes/cache.php
T

121 lines
3.1 KiB
PHP
Raw Normal View History

2015-01-15 18:15:25 +00:00
<?php
/**
* cache class provides an abstracted cache
*
* @method string set
* @method string get
* @method string delete
* @method string flush
2015-01-15 18:15:25 +00:00
*/
class cache {
/**
* Called when the object is created
*/
public function __construct() {
//place holder
}
/**
* Called when there are no references to a particular object
* unset the variables used in the class
*/
public function __destruct() {
foreach ($this as $key => $value) {
unset($this->$key);
}
}
/**
* Add a specific item in the cache
* @var string $key the cache id
* @var string $value string to be cached
*/
2015-01-15 19:24:54 +00:00
public function set($key, $value) {
2015-01-15 18:15:25 +00:00
//send a custom event
//run the memcache
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
if ($fp) {
$command = "memcache set ".$key." ".$value;
return event_socket_request($fp, 'api '.$command);
2015-01-15 18:15:25 +00:00
}
else {
return false;
}
}
/**
* Get a specific item from the cache
* @var string $key cache id
*/
2015-01-15 19:24:54 +00:00
public function get($key) {
2015-01-15 18:15:25 +00:00
//send a custom event
//run the memcache
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
if ($fp) {
$command = "memcache get ".$key;
return event_socket_request($fp, 'api '.$command);
2015-01-15 18:15:25 +00:00
}
else {
return false;
}
}
/**
* Delete a specific item from the cache
* @var string $key cache id
*/
2015-01-15 19:24:54 +00:00
public function delete($key) {
2015-01-15 18:15:25 +00:00
//send a custom event
2015-01-16 03:52:32 +00:00
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
if ($fp) {
$event = "sendevent CUSTOM\n";
$event .= "Event-Name: MEMCACHE\n";
2015-01-16 04:16:56 +00:00
$event .= "Event-Subclass: delete\n";
2015-01-16 03:52:32 +00:00
$event .= "API-Command: memcache\n";
$event .= "API-Command-Argument: delete ".$key."\n";
echo event_socket_request($fp, $event);
}
2015-01-15 18:15:25 +00:00
//run the memcache
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
if ($fp) {
$command = "memcache delete ".$key;
return event_socket_request($fp, 'api '.$command);
2015-01-15 18:15:25 +00:00
}
else {
return false;
}
}
/**
* Delete the entire cache
*/
2015-01-15 19:24:54 +00:00
public function flush() {
2015-01-15 18:15:25 +00:00
//send a custom event
2015-01-16 08:25:54 +00:00
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
if ($fp) {
$event = "sendevent CUSTOM\n";
$event .= "Event-Name: MEMCACHE\n";
$event .= "Event-Subclass: flush\n";
$event .= "API-Command: memcache\n";
$event .= "API-Command-Argument: flush\n";
echo event_socket_request($fp, $event);
}
2015-01-15 18:15:25 +00:00
//run the memcache
$fp = event_socket_create($_SESSION['event_socket_ip_address'], $_SESSION['event_socket_port'], $_SESSION['event_socket_password']);
if ($fp) {
$command = "memcache flush";
return event_socket_request($fp, 'api '.$command);
2015-01-15 18:15:25 +00:00
}
else {
return false;
}
}
2015-01-15 19:22:39 +00:00
}
2015-01-15 18:15:25 +00:00
?>