// 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); $wgt = get_int64_array($fp, $ne);
/** * 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); }
/** * 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'); }
// set up two document collections $collection = new Collection("employees"); try { $collectionHandler->add($collection); } catch (\Exception $e) { // collection may already exist - ignore this error for now } $collection = new Collection("departments"); try { $collectionHandler->add($collection); } catch (\Exception $e) { // collection may already exist - ignore this error for now } // set up an edge collection to link the two previous collections $collection = new Collection("worksFor"); $collection->setType(3); try { $collectionHandler->add($collection); } catch (\Exception $e) { // collection may already exist - ignore this error for now } // create a new department $marketing = Document::createFromArray(array("name" => "Marketing")); $documentHandler->save("departments", $marketing); // create another department $finance = Document::createFromArray(array("name" => "Finance")); $documentHandler->save("departments", $finance); // create a new employee $john = Document::createFromArray(array("name" => "John")); $documentHandler->save("employees", $john); // create another employee