Source for file Cache.php
Documentation is available at Cache.php
* Data Structures for PHP similar to Java's HashSet and LinkedHashSet. Uses
* memcached as a storage mechanism for persisting set data beyond the scope of
* Requires: {@link http://www.php.net/ PHP 5},
* {@link http://www.danga.com/memcached/ memcached} and
* {@link http://pecl.php.net/memcache pecl_memcache}
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to
* deal in the Software without restriction, including without limitation the
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* @category HighPerformance
* @copyright Coypright (c) 2008 Jeff Trudeau
* @license http://www.opensource.org/licenses/mit-license.php MIT License
require_once(dirname(__FILE__
) .
'/properties.php');
* Wraps the major functionality of the Memcache class provided by the
* pecl_memcache extension. An instance of this class should be retrieved
* using CacheFactory, which maintains a static reference throughout the
$this->isConnected =
false;
$this->connection =
new Memcache();
foreach($cache_servers as $server) {
$this->connection->addServer($server['host'], $server['port']);
if ($this->connection->getStats()) {
$this->isConnected =
true;
if ($this->isConnected) {
$this->connection->close();
$this->isConnected =
false;
* Deletes the specified element from the cache.
* @param int $expiration = 0
public function delete($key, $expiration =
0) {
if ($this->isConnected) {
$this->connection->delete($key, $expiration);
* Flushes the entire cache.
public function flush() {
if ($this->isConnected) {
$this->connection->flush();
* Retrieves the specified element from the cache, or null if the element
public function &get($key) {
if ($this->isConnected) {
$value =
$this->connection->get($key);
* Returns true if the cache is connected, false otherwise.
return $this->isConnected;
* Inserts/updates the specified element in the cache.
* @param boolean $useCompression = false
* @param int $expiration = 0
public function set($key,
if ($this->isConnected) {
$this->connection->set($key, $value, $useCompression, $expiration);
Documentation generated on Thu, 14 Feb 2008 09:14:26 -0500 by phpDocumentor 1.4.1