예제 #1
0
 /**
  * Gets the user based on it's ID
  *
  * @param $email string the email of the user
  * @return mixed the User that is in the database
  *          -1 the user doesn't exist
  *          -2 connection problem
  */
 public function getUserByEmail($email)
 {
     // Creating a CPS_Simple instance
     $cpsSimple = new \CPS_Simple($this->cpsConn);
     $query = CPS_Term($email, 'email');
     $list = array('id' => 'yes');
     try {
         $documents = $cpsSimple->search($query, NULL, NULL, $list);
     } catch (Exception $e) {
         return -2;
     }
     foreach ($documents as $id => $document) {
         return Converter::XML2Array($document);
     }
     return -1;
 }
<?php

// includes
require_once 'config.php';
require_once '../cps_simple.php';
try {
    // creating a CPS_Connection instance
    $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account']));
    // creating a CPS_Simple instance
    $cpsSimple = new CPS_Simple($cpsConnection);
    // looking up one document - listing only the name
    $document = $cpsSimple->lookupSingle('id1', array('document' => 'no', 'name' => 'yes'));
    echo $document->name . '<br />';
    // looking up multiple documents - listing only the name
    $documents = $cpsSimple->lookupMultiple(array('id2', 'id3'), array('document' => 'no', 'name' => 'yes'));
    foreach ($documents as $id => $document) {
        echo $document->name . '<br />';
    }
} catch (CPS_Exception $e) {
    var_dump($e->errors());
    exit;
}
<?php

// includes
require_once 'config.php';
require_once '../cps_simple.php';
try {
    // creating a CPS_Connection instance
    $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account']));
    // creating a CPS_Simple instance
    $cpsSimple = new CPS_Simple($cpsConnection);
    // search for items with category == 'cars' and car_params/year >= 2010
    $query = CPS_Term('cars', 'category') . CPS_Term('>=2010', 'car_params/year');
    // return documents starting with the first one - offset 0
    $offset = 0;
    // return not more than 5 documents
    $docs = 5;
    // return these fields from the documents
    $list = array('id' => 'yes', 'car_params/make' => 'yes', 'car_params/model' => 'yes', 'car_params/year' => 'yes');
    // order by year, from largest to smallest
    $ordering = CPS_NumericOrdering('car_params/year', 'descending');
    $documents = $cpsSimple->search($query, $offset, $docs, $list, $ordering);
    foreach ($documents as $id => $document) {
        echo $document->car_params->make . ' ' . $document->car_params->model . '<br />';
        echo 'first registration in ' . $document->car_params->year . '<br />';
    }
} catch (CPS_Exception $e) {
    var_dump($e->errors());
    exit;
}
<?php

// includes
require_once 'config.php';
require_once '../cps_simple.php';
try {
    // creating a CPS_Connection instance
    $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account']));
    // creating a CPS_Simple instance
    $cpsSimple = new CPS_Simple($cpsConnection);
    // looking up 10 last documents - list only the name
    $documents = $cpsSimple->listLast(array('document' => 'no', 'name' => 'yes'), 0, 10);
    foreach ($documents as $id => $document) {
        echo $document->name . '<br />';
    }
} catch (CPS_Exception $e) {
    var_dump($e->errors());
    exit;
}
<?php

// includes
require_once 'config.php';
require_once '../cps_simple.php';
try {
    // creating a CPS_Connection instance
    $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account']));
    $cpsSimple = new CPS_Simple($cpsConnection);
    // Insert 2 documents with balance
    $cpsSimple->updateMultiple(array("1" => array("balance" => 1000), "2" => array("balance" => 1000)));
    // Begin transaction
    $cpsSimple->beginTransaction();
    $docs = $cpsSimple->retrieveMultiple(array("1", "2"), DOC_TYPE_ARRAY);
    echo "Before update:\n";
    foreach ($docs as $doc) {
        echo $doc['id'] . ": " . $doc['balance'] . "\n";
    }
    // Increase balance and store in database
    $docs["1"]["balance"] -= 5;
    $docs["2"]["balance"] += 5;
    $cpsSimple->updateMultiple($docs);
    $docs = $cpsSimple->retrieveMultiple(array("1", "2"), DOC_TYPE_ARRAY);
    echo "After update:\n";
    foreach ($docs as $doc) {
        echo $doc['id'] . ": " . $doc['balance'] . "\n";
    }
    // Commit transaction
    $cpsSimple->commitTransaction();
    $docs = $cpsSimple->retrieveMultiple(array("1", "2"), DOC_TYPE_ARRAY);
    echo "After commit:\n";
<?php

// includes
require_once 'config.php';
require_once '../cps_simple.php';
try {
    // creating a CPS_Connection instance
    $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account']));
    // creating a CPS_Simple instance
    $cpsSimple = new CPS_Simple($cpsConnection);
    // retrieving paths
    $paths = $cpsSimple->listPaths();
    foreach ($paths as $path) {
        echo $path . '<br>';
    }
} catch (CPS_Exception $e) {
    var_dump($e->errors());
    exit;
}
<?php

// includes
require_once 'config.php';
require_once '../cps_simple.php';
try {
    // creating a CPS_Connection instance
    $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account']));
    // creating a CPS_Simple instance
    $cpsSimple = new CPS_Simple($cpsConnection);
    // deleting one document
    $cpsSimple->delete('id1');
    // deleting multiple documents
    $cpsSimple->delete(array('id2', 'id3'));
} catch (CPS_Exception $e) {
    var_dump($e->errors());
    exit;
}
<?php

// includes
require_once 'config.php';
require_once '../cps_simple.php';
try {
    // creating a CPS_Connection instance
    $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account']));
    // creating a CPS_Simple instance
    $cpsSimple = new CPS_Simple($cpsConnection);
    // retrieve 10 first documents
    $documents = $cpsSimple->retrieveFirst(0, 10);
    foreach ($documents as $id => $document) {
        echo $document->name . '<br />';
    }
} catch (CPS_Exception $e) {
    var_dump($e->errors());
    exit;
}
<?php

// includes
require_once 'config.php';
require_once '../cps_simple.php';
try {
    // creating a CPS_Connection instance
    $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account']));
    // creating a CPS_Simple instance
    $cpsSimple = new CPS_Simple($cpsConnection);
    // retrieving one document
    $document = $cpsSimple->retrieveSingle('id1');
    echo $document->name . '<br />';
    // retrieving multiple documents - listing only the name
    $documents = $cpsSimple->retrieveMultiple(array('id2', 'id3'));
    foreach ($documents as $id => $document) {
        echo $document->name . '<br />';
    }
} catch (CPS_Exception $e) {
    var_dump($e->errors());
    exit;
}
<?php

// includes
require_once 'config.php';
require_once '../cps_simple.php';
try {
    // creating a CPS_Connection instance
    $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account']));
    // creating a CPS_Simple instance
    $cpsSimple = new CPS_Simple($cpsConnection);
    // creating a new document
    $document = array('title' => 'Test document', 'body' => array('text' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam a nisl magna.'));
    $document2 = array('title' => 'Document 2', 'body' => array('text' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam a nisl magna.'));
    $document3 = array('title' => 'Document 3', 'body' => array('text' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam a nisl magna.'));
    // Insert
    $cpsSimple->insertSingle('id1', $document);
    $cpsSimple->insertMultiple(array('id2' => $document2, 'id3' => $document3));
    // Update
    $document['title'] = 'changed title';
    $cpsSimple->updateSingle('id1', $document);
    $cpsSimple->updateMultiple(array('id1' => $document, 'id3' => $document3));
    // Replace
    $document['title'] = 'changed title for replace';
    $cpsSimple->replaceSingle('id1', $document);
    $cpsSimple->replaceMultiple(array('id1' => $document, 'id3' => $document3));
    // Partial Replace
    $document = array('title' => 'original title');
    $cpsSimple->partialReplaceSingle('id1', $document);
    $cpsSimple->partialreplaceMultiple(array('id1' => $document, 'id3' => $document3));
} catch (CPS_Exception $e) {
    var_dump($e->errors());
<?php

// includes
require_once 'config.php';
require_once '../cps_simple.php';
try {
    // creating a CPS_Connection instance
    $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account']));
    // creating a CPS_Simple instance
    $cpsSimple = new CPS_Simple($cpsConnection);
    // retrieving status
    $status = $cpsSimple->status();
    foreach ($status['shard'] as $shard) {
        foreach ($shard['replica'] as $replica) {
            echo 'Status ' . $replica['status']['index']['status'] . ' <br>';
        }
    }
} catch (CPS_Exception $e) {
    var_dump($e->errors());
    exit;
}
<?php

// includes
require_once 'cps_simple.php';
try {
    // creating a CPS_Connection instance
    // if using HMAC keys, USERNAME and PASSWORD can be left empty
    $cpsConnection = new CPS_Connection("tcp://ENDPOINT_IP:PORT", "DATABASE", "USERNAME", "PASSWORD", "document", "//document/id", array("account" => "ACCOUNTID"));
    // setting HMAC keys, comment out is and standard username/password will be used
    $cpsConnection->setHMACKeys("USERKEY", "SIGNKEY");
    // uncomment this, if you would like to see request/response and verify, that username and password is not set
    //$cpsConnection->setDebug(true);
    // perform status command
    $cpsSimple = new CPS_Simple($cpsConnection);
    echo "Status response:\n";
    var_dump($cpsSimple->status());
} catch (CPS_Exception $e) {
    var_dump($e->errors());
    exit;
}