本文整理汇总了PHP中Collection::setName方法的典型用法代码示例。如果您正苦于以下问题:PHP Collection::setName方法的具体用法?PHP Collection::setName怎么用?PHP Collection::setName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Collection
的用法示例。
在下文中一共展示了Collection::setName方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testGetRevision
/**
* test for getting the , true, true for a collection
*/
public function testGetRevision()
{
$collectionHandler = $this->collectionHandler;
$documentHandler = $this->documentHandler;
$collection = new Collection();
$collection->setName("ArangoDB_PHP_TestSuite_TestCollection_01");
$collection->setId($collectionHandler->create($collection));
$revision = $collectionHandler->getRevision($collection->getName());
$this->assertArrayHasKey('revision', $revision);
$document = Document::createFromArray(array('someAttribute' => 'someValue1', 'someOtherAttribute' => 'someOtherValue'));
$documentHandler->save($collection->getId(), $document);
$revision2 = $collectionHandler->getRevision($collection->getName());
$this->assertNotEquals($revision2['revision'], $revision['revision']);
$collectionHandler->drop($collection);
}
示例2: testExportEdgeObjects
/**
* Test export as Edge object
*/
public function testExportEdgeObjects()
{
if (!$this->hasExportApi) {
return;
}
try {
$this->collectionHandler->drop('ArangoDB_PHP_TestSuite_TestEdge');
} catch (\Exception $e) {
}
$edgeCollection = new Collection();
$edgeCollection->setName('ArangoDB_PHP_TestSuite_TestEdge');
$edgeCollection->setType(Collection::TYPE_EDGE);
$this->collectionHandler->add($edgeCollection);
$edgeHandler = new EdgeHandler($this->connection);
$vertexCollection = $this->collection->getName();
for ($i = 0; $i < 100; ++$i) {
$edgeHandler->saveEdge($edgeCollection, $vertexCollection . "/1", $vertexCollection . "/2", array("value" => $i));
}
$export = new Export($this->connection, $edgeCollection, array("_flat" => false));
$cursor = $export->execute();
$this->assertEquals(1, $cursor->getFetches());
$this->assertNull($cursor->getId());
$this->assertEquals(100, $cursor->getCount());
$this->assertEquals(1, $cursor->getFetches());
$all = $cursor->getNextBatch();
$this->assertEquals(100, count($all));
foreach ($all as $doc) {
$this->assertTrue($doc instanceof Document);
$this->assertTrue($doc instanceof Edge);
}
$this->assertFalse($cursor->getNextBatch());
$this->collectionHandler->drop('ArangoDB_PHP_TestSuite_TestEdge');
}
示例3: catch
} catch (Exception $e) {
// do nothing
}
/* drop edge if it exists */
try {
$edge = $collections->get("edges");
$collections->drop($edge);
} catch (Exception $e) {
// do nothing
}
$vertex = new Collection();
$vertex->setName("vertices");
$collections->add($vertex);
$vertex = $vertex->getId();
$edge = new Collection();
$edge->setName("edges");
$edge->setType(3);
$collections->add($edge);
$edge = $edge->getId();
print "Reading graph file...\n";
$graphfilename = $argv[1];
$actionsfilename = $argv[2];
$fp = fopen($graphfilename, "rb");
if (0x1234abcd != get_next_int64($fp)) {
print "Endianness check failed. Endianness swap not implemented.";
exit;
}
$nv = get_next_int64($fp);
$ne = get_next_int64($fp);
$off = get_int64_array($fp, $nv + 1);
$ind = get_int64_array($fp, $ne);
示例4: dirname
<?php
namespace triagens\ArangoDb;
require dirname(__FILE__) . DIRECTORY_SEPARATOR . 'init.php';
try {
$connection = new Connection($connectionOptions);
$handler = new CollectionHandler($connection);
if ($handler->has('example')) {
$handler->delete('example');
}
$col = new Collection();
$col->setName('example');
$result = $handler->add($col);
// create a statement to insert 100 example documents
$statement = new Statement($connection, array('query' => 'FOR i IN 1..100 INSERT { _key: CONCAT("example", i) } IN example'));
$statement->execute();
// print number of documents
var_dump($handler->getCount('example'));
// later on, we can assemble a list of document keys
$keys = array();
for ($i = 1; $i <= 100; ++$i) {
$keys[] = 'example' . $i;
}
// and fetch all the documents at once by their keys
$documents = $handler->lookupByKeys('example', $keys);
var_dump($documents);
// we can also bulk-remove them:
$result = $handler->removeByKeys('example', $keys);
var_dump($result);
// print number of documents after bulk removal
示例5: dirname
<?php
namespace triagens\ArangoDb;
require dirname(__FILE__) . DIRECTORY_SEPARATOR . 'init.php';
try {
$connection = new Connection($connectionOptions);
$handler = new CollectionHandler($connection);
// create a new collection
$col = new Collection();
$col->setName("hihi");
$result = $handler->add($col);
var_dump($result);
// check if a collection exists
$result = $handler->has("foobar");
var_dump($result);
// get an existing collection
$result = $handler->get("hihi");
var_dump($result);
// get an existing collection
$result = $handler->get("hihi");
var_dump($result);
// get number of documents from an existing collection
$result = $handler->getCount("hihi");
var_dump($result);
// get figures for an existing collection
$result = $handler->getFigures("hihi");
var_dump($result);
// delete the collection
$result = $handler->delete("hihi");
var_dump($result);
示例6: testCreateMixedBatchWithPartIds
public function testCreateMixedBatchWithPartIds()
{
$edgeCollection = $this->edgeCollection;
$batch = new Batch($this->connection);
$this->assertInstanceOf('\\triagens\\ArangoDb\\Batch', $batch);
// Create collection
$connection = $this->connection;
$collection = new Collection();
$collectionHandler = new CollectionHandler($connection);
$name = 'ArangoDB_PHP_TestSuite_TestCollection_02';
$collection->setName($name);
$batch->nextBatchPartId('testCollection1');
$response = $collectionHandler->add($collection);
$this->assertTrue(is_numeric($response), 'Did not return a fake numeric id!');
$batch->process();
$resultingCollectionId = $batch->getProcessedPartResponse('testCollection1');
$testCollection1Part = $batch->getPart('testCollection1');
$this->assertTrue($testCollection1Part->getHttpCode() == 200, 'Did not return an HttpCode 200!');
$resultingCollection = $collectionHandler->get($batch->getProcessedPartResponse('testCollection1'));
$resultingAttribute = $resultingCollection->getName();
$this->assertTrue($name === $resultingAttribute, 'The created collection name and resulting collection name do not match!');
$this->assertEquals(Collection::getDefaultType(), $resultingCollection->getType());
$batch = new Batch($this->connection);
// Create documents
$documentHandler = $this->documentHandler;
$batch->nextBatchPartId('doc1');
$document = Document::createFromArray(array('someAttribute' => 'someValue', 'someOtherAttribute' => 'someOtherValue'));
$documentId = $documentHandler->add($resultingCollectionId, $document);
$this->assertTrue(is_numeric($documentId), 'Did not return a fake numeric id!');
for ($i = 0; $i <= 10; ++$i) {
$document = Document::createFromArray(array('someAttribute' => 'someValue' . $i, 'someOtherAttribute' => 'someOtherValue2' . $i));
$documentId = $documentHandler->add($resultingCollectionId, $document);
}
$this->assertTrue(is_numeric($documentId), 'Did not return a fake numeric id!');
$batch->process();
// try getting processed response through batchpart
$testDocument1PartResponse = $batch->getPart('doc1')->getProcessedResponse();
// try getting it from batch
$testDocument2PartResponse = $batch->getProcessedPartResponse(1);
$batch = new Batch($this->connection);
$docId1 = explode('/', $testDocument1PartResponse);
$docId2 = explode('/', $testDocument2PartResponse);
$documentHandler->getById($resultingCollectionId, $docId1[1]);
$documentHandler->getById($resultingCollectionId, $docId2[1]);
$batch->process();
$document1 = $batch->getProcessedPartResponse(0);
$document2 = $batch->getProcessedPartResponse(1);
$batch = new Batch($this->connection);
// test edge creation
$edgeDocument = new Edge();
$edgeDocumentHandler = new EdgeHandler($connection);
$edgeDocument->set('label', 'knows');
$edgeDocumentHandler->saveEdge($edgeCollection->getName(), $document1->getHandle(), $document2->getHandle(), $edgeDocument);
$batch->process();
$edge = $batch->getProcessedPartResponse(0);
$this->assertFalse(is_a($edge, 'triagens\\ArangoDb\\HttpResponse'), 'Edge batch creation did return an error: ' . print_r($edge, true));
$this->assertTrue($edge == !'', 'Edge batch creation did return empty string: ' . print_r($edge, true));
$batch = new Batch($this->connection);
$document = new Document();
$documentHandler = new DocumentHandler($connection);
$document->someAttribute = 'someValue';
$documentHandler->add($resultingCollection->getId(), $document);
// set the next batchpart id
$batch->nextBatchPartId('myBatchPart');
// set cursor options for the next batchpart
$batch->nextBatchPartCursorOptions(array("sanitize" => true));
// set batchsize to 10, so we can test if an additional http request is done when we getAll() a bit later
$statement = new Statement($connection, array("query" => '', "count" => true, "batchSize" => 10, "sanitize" => true));
$statement->setQuery('FOR a IN `ArangoDB_PHP_TestSuite_TestCollection_02` RETURN a');
$statement->execute();
$documentHandler->removeById($resultingCollectionId, $docId1[1]);
$documentHandler->removeById($resultingCollectionId, $docId2[1]);
$batch->nextBatchPartId('docsAfterRemoval');
$collectionHandler->getAllIds($resultingCollectionId);
$batch->process();
$stmtCursor = $batch->getProcessedPartResponse('myBatchPart');
$this->assertTrue(count($stmtCursor->getAll()) == 13, 'At the time of statement execution there should be 13 documents found! Found: ' . count($stmtCursor->getAll()));
// This fails but we'll just make a note because such a query is not needed to be batched.
// $docsAfterRemoval=$batch->getProcessedPartResponse('docsAfterRemoval');
// $this->assertTrue(count($docsAfterRemoval) == 1, 'At the time of statement execution there should be 3 documents found! Found: '.count($stmtCursor->getAll()));
// Get previously created collection and delete it, from inside a batch
$batch = new Batch($this->connection);
$collectionHandler->delete($resultingCollectionId);
$batch->process();
}
示例7: testCreateAndDeleteEdgeCollection
/**
* Try to create and delete an edge collection
*/
public function testCreateAndDeleteEdgeCollection()
{
$connection = $this->connection;
$collection = new Collection();
$collectionHandler = new CollectionHandler($connection);
$name = 'ArangoDB_PHP_TestSuite_TestCollection_02';
try {
$collectionHandler->drop($name);
} catch (Exception $e) {
//Silence the exception
}
$collection->setName($name);
$collection->setType(3);
$collectionHandler->add($collection);
$resultingCollection = $collectionHandler->get($name);
$resultingAttribute = $resultingCollection->getName();
$this->assertTrue($name === $resultingAttribute, 'The created collection name and resulting collection name do not match!');
$this->assertEquals(Collection::TYPE_EDGE, $resultingCollection->getType());
$collectionHandler->delete($collection);
}
示例8: create
/**
* Creates a new collection on the server
*
* This will add the collection on the server and return its id
* The id is mainly returned for backwards compatibility, but you should use the collection name for any reference to the collection. *
* This will throw if the collection cannot be created
*
* @throws Exception
*
* @param mixed $collection - collection object to be created on the server or a string with the name
* @param array $options - an array of options.
* <p>Options are :<br>
* <li>'type' - 2 -> normal collection, 3 -> edge-collection</li>
* <li>'waitForSync' - if set to true, then all removal operations will instantly be synchronised to disk / If this is not specified, then the collection's default sync behavior will be applied.</li>
* <li>'journalSize' - journalSize value.</li>
* <li>'isSystem' - false->user collection(default), true->system collection .</li>
* <li>'isVolatile' - false->persistent collection(default), true->volatile (in-memory) collection .</li>
* <li>'numberOfShards' - number of shards for the collection.</li>
* <li>'shardKeys' - list of shard key attributes.</li>
* </p>
*
* @return mixed - id of collection created
*/
public function create($collection, $options = array())
{
if (is_string($collection)) {
$name = $collection;
$collection = new Collection();
$collection->setName($name);
foreach ($options as $key => $value) {
$collection->{'set' . ucfirst($key)}($value);
}
}
if ($collection->getWaitForSync() === null) {
$collection->setWaitForSync($this->getConnectionOption(ConnectionOptions::OPTION_WAIT_SYNC));
}
if ($collection->getJournalSize() === null) {
$collection->setJournalSize($this->getConnectionOption(ConnectionOptions::OPTION_JOURNAL_SIZE));
}
if ($collection->getIsSystem() === null) {
$collection->setIsSystem($this->getConnectionOption(ConnectionOptions::OPTION_IS_SYSTEM));
}
if ($collection->getIsVolatile() === null) {
$collection->setIsVolatile($this->getConnectionOption(ConnectionOptions::OPTION_IS_VOLATILE));
}
$type = $collection->getType() ? $collection->getType() : Collection::getDefaultType();
$params = array(Collection::ENTRY_NAME => $collection->getName(), Collection::ENTRY_TYPE => $type, Collection::ENTRY_WAIT_SYNC => $collection->getWaitForSync(), Collection::ENTRY_JOURNAL_SIZE => $collection->getJournalSize(), Collection::ENTRY_IS_SYSTEM => $collection->getIsSystem(), Collection::ENTRY_IS_VOLATILE => $collection->getIsVolatile(), Collection::ENTRY_KEY_OPTIONS => $collection->getKeyOptions());
// set extra cluster attributes
if ($collection->getNumberOfShards() !== null) {
$params[Collection::ENTRY_NUMBER_OF_SHARDS] = $collection->getNumberOfShards();
}
if (is_array($collection->getShardKeys())) {
$params[Collection::ENTRY_SHARD_KEYS] = $collection->getShardKeys();
}
$response = $this->getConnection()->post(Urls::URL_COLLECTION, $this->json_encode_wrapper($params));
// $location = $response->getLocationHeader();
// if (!$location) {
// throw new ClientException('Did not find location header in server response');
// }
$jsonResponse = $response->getJson();
$id = $jsonResponse['id'];
$collection->setId($id);
return $id;
}