Exemplo n.º 1
0
use phpcassa\Schema\StrategyClass;
use phpcassa\UUID;
// Create a new keyspace and column family
$sys = new SystemManager('127.0.0.1');
$sys->create_keyspace('Keyspace1', array("strategy_class" => StrategyClass::SIMPLE_STRATEGY, "strategy_options" => array('replication_factor' => '1')));
// We'll use TimeUUIDs for column names and UUIDs for row keys
$sys->create_column_family('Keyspace1', 'UserLogs', array("comparator_type" => "TimeUUIDType", "key_validation_class" => "LexicalUUIDType"));
// Start a connection pool, create our ColumnFamily instance
$pool = new ConnectionPool('Keyspace1', array('127.0.0.1'));
$user_logs = new ColumnFamily($pool, 'UserLogs');
// Don't use dictionary-style arrays for data
$user_logs->insert_format = ColumnFamily::ARRAY_FORMAT;
$user_logs->return_format = ColumnFamily::ARRAY_FORMAT;
// Make a couple of user IDs with non-Time UUIDs
$user1_id = UUID::uuid4();
$user2_id = UUID::uuid4();
// Insert some log messages
$user1_logs = array();
$user2_logs = array();
for ($i = 0; $i < 5; $i++) {
    $user1_logs[] = array(UUID::uuid1(), "message{$i}");
    $user2_logs[] = array(UUID::uuid1(), "message{$i}");
}
$user_logs->batch_insert(array(array($user1_id, $user1_logs), array($user2_id, $user2_logs)));
echo "Using ColumnFamily::ARRAY_FORMAT\n";
echo "================================\n\n";
// Pull the first two logs back out
$slice = new ColumnSlice('', '', $count = 2);
$logs = $user_logs->get($user1_id, $slice);
echo "First two logs for user1: \n";
list($uuid, $message) = $logs[0];