Ejemplo n.º 1
0
 /** Insert new record */
 function save($member = '')
 {
     $dynamodb = new AmazonDynamoDB();
     if ($member != '') {
         if (!isset($member['id'])) {
             // new record
             $id = time() . rand(0, 100);
             $dynamodb->batch($queue)->put_item(array('TableName' => $this->tableName, 'Item' => array($this->primaryKey => array(AmazonDynamoDB::TYPE_NUMBER => $id), 'date' => array(AmazonDynamoDB::TYPE_NUMBER => (string) $member['date']), 'name' => array(AmazonDynamoDB::TYPE_STRING => $member['name']), 'address' => array(AmazonDynamoDB::TYPE_STRING => $member['address']), 'phone' => array(AmazonDynamoDB::TYPE_STRING => $member['phone']))));
             // Execute the batch of requests in parallel if you wish
             $responses = $dynamodb->batch($queue)->send();
             if ($responses[0]->status == '200') {
                 return $id;
             } else {
                 print_r($responses);
             }
         } else {
             // edit existing record
             $id = $member['id'];
             $response = $dynamodb->update_item(array('TableName' => $this->tableName, 'Key' => array('HashKeyElement' => array(AmazonDynamoDB::TYPE_NUMBER => $id)), 'AttributeUpdates' => array('date' => array('Action' => AmazonDynamoDB::ACTION_PUT, 'Value' => array(AmazonDynamoDB::TYPE_NUMBER => (string) $member['date'])), 'name' => array('Action' => AmazonDynamoDB::ACTION_PUT, 'Value' => array(AmazonDynamoDB::TYPE_STRING => $member['name'])), 'address' => array('Action' => AmazonDynamoDB::ACTION_PUT, 'Value' => array(AmazonDynamoDB::TYPE_STRING => $member['address'])), 'phone' => array('Action' => AmazonDynamoDB::ACTION_PUT, 'Value' => array(AmazonDynamoDB::TYPE_STRING => $member['phone'])))));
             if ($response->status == '200') {
                 return $id;
             } else {
                 print_r($responses);
             }
         }
     }
 }
require_once dirname(__FILE__) . '/vendor/amazonwebservices/aws-sdk-for-php/sdk.class.php';
// Instantiate the class
$dynamodb = new AmazonDynamoDB(array('key' => getenv('AWS_ACCESS_KEY'), 'secret' => getenv('AWS_SECRET_KEY')));
$dynamodb->set_region('dynamodb.' . getenv('AWS_REGION') . '.amazonaws.com');
####################################################################
# Setup some local variables for dates
$one_day_ago = date('Y-m-d H:i:s', strtotime("-1 days"));
$seven_days_ago = date('Y-m-d H:i:s', strtotime("-7 days"));
$fourteen_days_ago = date('Y-m-d H:i:s', strtotime("-14 days"));
$twenty_one_days_ago = date('Y-m-d H:i:s', strtotime("-21 days"));
####################################################################
// Set up batch requests
$queue = new CFBatchRequest();
$queue->use_credentials($dynamodb->credentials);
// Add items to the batch
$dynamodb->batch($queue)->put_item(array('TableName' => 'ProductCatalog', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_NUMBER => '101'), 'Title' => array(AmazonDynamoDB::TYPE_STRING => 'Book 101 Title'), 'ISBN' => array(AmazonDynamoDB::TYPE_STRING => '111-1111111111'), 'Authors' => array(AmazonDynamoDB::TYPE_ARRAY_OF_STRINGS => array('Author1')), 'Price' => array(AmazonDynamoDB::TYPE_NUMBER => '2'), 'Dimensions' => array(AmazonDynamoDB::TYPE_STRING => '8.5 x 11.0 x 0.5'), 'PageCount' => array(AmazonDynamoDB::TYPE_NUMBER => '500'), 'InPublication' => array(AmazonDynamoDB::TYPE_NUMBER => '1'), 'ProductCategory' => array(AmazonDynamoDB::TYPE_STRING => 'Book'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'ProductCatalog', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_NUMBER => '102'), 'Title' => array(AmazonDynamoDB::TYPE_STRING => 'Book 102 Title'), 'ISBN' => array(AmazonDynamoDB::TYPE_STRING => '222-2222222222'), 'Authors' => array(AmazonDynamoDB::TYPE_ARRAY_OF_STRINGS => array('Author1', 'Author2')), 'Price' => array(AmazonDynamoDB::TYPE_NUMBER => '20'), 'Dimensions' => array(AmazonDynamoDB::TYPE_STRING => '8.5 x 11.0 x 0.8'), 'PageCount' => array(AmazonDynamoDB::TYPE_NUMBER => '600'), 'InPublication' => array(AmazonDynamoDB::TYPE_NUMBER => '1'), 'ProductCategory' => array(AmazonDynamoDB::TYPE_STRING => 'Book'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'ProductCatalog', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_NUMBER => '103'), 'Title' => array(AmazonDynamoDB::TYPE_STRING => 'Book 103 Title'), 'ISBN' => array(AmazonDynamoDB::TYPE_STRING => '333-3333333333'), 'Authors' => array(AmazonDynamoDB::TYPE_ARRAY_OF_STRINGS => array('Author1', 'Author2')), 'Price' => array(AmazonDynamoDB::TYPE_NUMBER => '2000'), 'Dimensions' => array(AmazonDynamoDB::TYPE_STRING => '8.5 x 11.0 x 1.5'), 'PageCount' => array(AmazonDynamoDB::TYPE_NUMBER => '600'), 'InPublication' => array(AmazonDynamoDB::TYPE_NUMBER => '0'), 'ProductCategory' => array(AmazonDynamoDB::TYPE_STRING => 'Book'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'ProductCatalog', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_NUMBER => '201'), 'Title' => array(AmazonDynamoDB::TYPE_STRING => '18-Bike-201'), 'Description' => array(AmazonDynamoDB::TYPE_STRING => '201 Description'), 'BicycleType' => array(AmazonDynamoDB::TYPE_STRING => 'Road'), 'Brand' => array(AmazonDynamoDB::TYPE_STRING => 'Mountain A'), 'Price' => array(AmazonDynamoDB::TYPE_NUMBER => '100'), 'Gender' => array(AmazonDynamoDB::TYPE_STRING => 'M'), 'Color' => array(AmazonDynamoDB::TYPE_ARRAY_OF_STRINGS => array('Red', 'Black')), 'ProductCategory' => array(AmazonDynamoDB::TYPE_STRING => 'Bicycle'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'ProductCatalog', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_NUMBER => '202'), 'Title' => array(AmazonDynamoDB::TYPE_STRING => '21-Bike-202'), 'Description' => array(AmazonDynamoDB::TYPE_STRING => '202 Description'), 'BicycleType' => array(AmazonDynamoDB::TYPE_STRING => 'Road'), 'Brand' => array(AmazonDynamoDB::TYPE_STRING => 'Brand-Company A'), 'Price' => array(AmazonDynamoDB::TYPE_NUMBER => '200'), 'Gender' => array(AmazonDynamoDB::TYPE_STRING => 'M'), 'Color' => array(AmazonDynamoDB::TYPE_ARRAY_OF_STRINGS => array('Green', 'Black')), 'ProductCategory' => array(AmazonDynamoDB::TYPE_STRING => 'Bicycle'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'ProductCatalog', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_NUMBER => '203'), 'Title' => array(AmazonDynamoDB::TYPE_STRING => '19-Bike-203'), 'Description' => array(AmazonDynamoDB::TYPE_STRING => '203 Description'), 'BicycleType' => array(AmazonDynamoDB::TYPE_STRING => 'Road'), 'Brand' => array(AmazonDynamoDB::TYPE_STRING => 'Brand-Company B'), 'Price' => array(AmazonDynamoDB::TYPE_NUMBER => '300'), 'Gender' => array(AmazonDynamoDB::TYPE_STRING => 'W'), 'Color' => array(AmazonDynamoDB::TYPE_ARRAY_OF_STRINGS => array('Red', 'Green', 'Black')), 'ProductCategory' => array(AmazonDynamoDB::TYPE_STRING => 'Bicycle'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'ProductCatalog', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_NUMBER => '204'), 'Title' => array(AmazonDynamoDB::TYPE_STRING => '18-Bike-204'), 'Description' => array(AmazonDynamoDB::TYPE_STRING => '204 Description'), 'BicycleType' => array(AmazonDynamoDB::TYPE_STRING => 'Mountain'), 'Brand' => array(AmazonDynamoDB::TYPE_STRING => 'Brand-Company B'), 'Price' => array(AmazonDynamoDB::TYPE_NUMBER => '400'), 'Gender' => array(AmazonDynamoDB::TYPE_STRING => 'W'), 'Color' => array(AmazonDynamoDB::TYPE_ARRAY_OF_STRINGS => array('Red')), 'ProductCategory' => array(AmazonDynamoDB::TYPE_STRING => 'Bicycle'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'ProductCatalog', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_NUMBER => '205'), 'Title' => array(AmazonDynamoDB::TYPE_STRING => '20-Bike-205'), 'Description' => array(AmazonDynamoDB::TYPE_STRING => '205 Description'), 'BicycleType' => array(AmazonDynamoDB::TYPE_STRING => 'Hybrid'), 'Brand' => array(AmazonDynamoDB::TYPE_STRING => 'Brand-Company C'), 'Price' => array(AmazonDynamoDB::TYPE_NUMBER => '500'), 'Gender' => array(AmazonDynamoDB::TYPE_STRING => 'B'), 'Color' => array(AmazonDynamoDB::TYPE_ARRAY_OF_STRINGS => array('Red', 'Black')), 'ProductCategory' => array(AmazonDynamoDB::TYPE_STRING => 'Bicycle'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'Forum', 'Item' => array('Name' => array(AmazonDynamoDB::TYPE_STRING => 'Amazon DynamoDB'), 'Category' => array(AmazonDynamoDB::TYPE_STRING => 'Amazon Web Services'), 'Threads' => array(AmazonDynamoDB::TYPE_NUMBER => '0'), 'Messages' => array(AmazonDynamoDB::TYPE_NUMBER => '0'), 'Views' => array(AmazonDynamoDB::TYPE_NUMBER => '1000'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'Forum', 'Item' => array('Name' => array(AmazonDynamoDB::TYPE_STRING => 'Amazon S3'), 'Category' => array(AmazonDynamoDB::TYPE_STRING => 'Amazon Web Services'), 'Threads' => array(AmazonDynamoDB::TYPE_NUMBER => '0'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'Reply', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_STRING => 'Amazon DynamoDB#DynamoDB Thread 1'), 'ReplyDateTime' => array(AmazonDynamoDB::TYPE_STRING => $fourteen_days_ago), 'Message' => array(AmazonDynamoDB::TYPE_STRING => 'DynamoDB Thread 1 Reply 2 text'), 'PostedBy' => array(AmazonDynamoDB::TYPE_STRING => 'User B'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'Reply', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_STRING => 'Amazon DynamoDB#DynamoDB Thread 2'), 'ReplyDateTime' => array(AmazonDynamoDB::TYPE_STRING => $twenty_one_days_ago), 'Message' => array(AmazonDynamoDB::TYPE_STRING => 'DynamoDB Thread 2 Reply 3 text'), 'PostedBy' => array(AmazonDynamoDB::TYPE_STRING => 'User B'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'Reply', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_STRING => 'Amazon DynamoDB#DynamoDB Thread 2'), 'ReplyDateTime' => array(AmazonDynamoDB::TYPE_STRING => $seven_days_ago), 'Message' => array(AmazonDynamoDB::TYPE_STRING => 'DynamoDB Thread 2 Reply 2 text'), 'PostedBy' => array(AmazonDynamoDB::TYPE_STRING => 'User A'))));
$dynamodb->batch($queue)->put_item(array('TableName' => 'Reply', 'Item' => array('Id' => array(AmazonDynamoDB::TYPE_STRING => 'Amazon DynamoDB#DynamoDB Thread 2'), 'ReplyDateTime' => array(AmazonDynamoDB::TYPE_STRING => $one_day_ago), 'Message' => array(AmazonDynamoDB::TYPE_STRING => 'DynamoDB Thread 2 Reply 1 text'), 'PostedBy' => array(AmazonDynamoDB::TYPE_STRING => 'User A'))));
// Execute the batch of requests in parallel
$responses = $dynamodb->batch($queue)->send();