DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
Apache Cassandra PHP Client
Introduction
SimpleCassie is entirely stand-alone package which wrap itself around Thrift libs (licensed to Apache Software Foundation) already built into this class.
SimpleCassie supports all features of TimeUUIDType - examples below.
The latest version is compatible only with Cassandra 0.7.x and higher.
Please report all bugs under: http://code.google.com/p/simpletools-php/issues/list so will be able to help and comment on them easier.
Usage
<?php
require_once('SimpleCassie.php');
$cassie = new SimpleCassie(HOST, PORT);
if(!$cassie->isConnected())
throw new Exception('Couldn\'t connect to server');
/*
* setting working keyspace
* @return - (false) on failure true on success
* working keyspace can be change at any point by running ->keyspace() method
*/
$cassie->keyspace('Keyspace1');
/*
* setting new column (and key if not exist)
* @return - (false) on failure
*/
$cassie->keyspace('MyApp')->cf('Users')->key('user1')->column('name')->set('Marcin');
$cassie->column('surname')->set('Rosinski');
/*
* delete column or row/key
* @return - (false) on failure
*/
//deleting column
$cassie->key('user1')->column('name')->remove();
//deleting row
$cassie->key('user1')->remove();
/*
* count number of columns in row/key
* @return - (int) on succes, false on failure
*/
$count = $cassie->key('user2')->count();
/*
* count number of columns with predicate: from column to column
* @return - (int) on succes, false on failure
*/
$count = $cassie->key('user2')->column('fromColumn','toColumn')->count();
/*
* count number of columns with predicate: from column to column for multiple keys
* @return - (int) on succes, false on failure
*/
$count = $cassie->key('user2','user3')->column('fromColumn','toColumn')->count();
/*
* getting single column
* @return - object on succes, null on failure
*/
$name = $cassie->keyspace('Keyspace1')->cf('Standard1')->key('user1')->column('name')->get();
/*
* getting multiple columns
* @return - array of objects on success, null on failure
*/
$user = $cassie->column('name','surname')->get();
/*
* getting multiple column values
* @return - array of objects on success, null on failure
*/
$user = $cassie->column('name','surname')->value();
/*
* getting single column from multiple rows/keys
* @return - array of objects on succes, null on failure
*/
$users = $cassie->key('user1','user2')->column('name')->get();
/*
* getting multiple columns from multiple rows/keys
* @return - array of objects on succes, null on failure
*/
$users = $cassie->key('user1','user2')->column('name','username')->get();
/*
* getting slice of columns from single row/key
* @return - array of objects on succes, null on failure
*/
$limit = 10;
$reversed = false;
$from_name = 'Puma';
$to_name = 'Tiger';
$friends = $cassie->key('user1friends')->column($from_name,$to_name)->slice($limit,$reversed);
/*
* getting slice of columns from single supercolumn row
* @return - array of objects on succes, null on failure
*/
$limit = 10;
$reversed = false;
$friends = $cassie->key('user1')->supercolumn('friends')->column($from_name,$to_name)->slice($limit,$reversed);
//resetting supercolumn for future use
$cassie->key('user1')->supercolumn(null);
/*
* getting slice of columns from multiple rows/keys
* @return - array of objects on succes, null on failure
*/
$limit = 10;
$reversed = true;
$friends = $cassie->key('user1friends','user2friends')->column($from_name,$to_name)->slice($limit,$reversed);
/*
* increment column value
* @return - (int) new value on succes, false on failure
*/
$new_value = $cassie->key('user1')->column('friends')->increment();
/*
* decrement column value
* @return - (int) new value on succes, false on failure
*/
$new_value = $cassie->key('user1')->column('friends')->decrement();
?>
UUID Usage Examples
<?php
//setting new uuid column
$cassie->keyspace('MyApp')->cf('BlogPosts')->key('post')->column($cassie->uuid())->set('I like raw food.');
//getting latest added post (assuming TimeUUIDType)
$post = $cassie->key('post')->slice(1);
//getting post column uuid name in canonical form
$uuid = $cassie->uuid($post->column->name);
$string_form = (string) $uuid; //canonical form
$binary_form = $uuid->uuid;
?>
Development Roadmap
- Connection Load Balancing
- ->get_range_slices() - coming soon!
- ->remove() method for multiple rows/keys
- ->increment() method for multiple rows/keys
- ->decrement() method for multiple rows/keys
- ->truncate()
- all describe methods
- ->batch_mutate()
Download Link
SimpleCassie.php download - http://code.google.com/p/simpletools-php/downloads/list
Discussion Group
[http://groups.google.com/group/simpletools/browse_thread/thread/b2d5afc83e7acd5b SimpleCassie related discussion]