本文整理汇总了PHP中DocumentManager类的典型用法代码示例。如果您正苦于以下问题:PHP DocumentManager类的具体用法?PHP DocumentManager怎么用?PHP DocumentManager使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了DocumentManager类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: save
public function save(AbstractEntity $entity)
{
if ($entity->getStorageStructure() == AbstractEntity::DOCUMENT) {
$dm = new DocumentManager();
$document = $entity->toDocument();
$dm->persist($document);
}
if ($entity->getStorageStructure() == AbstractEntity::RELATIONAL) {
$rm = new RecordManager();
$record = $entity->toRecord();
$rm->save($record);
}
}
示例2: fixDocumentNameCallback
function fixDocumentNameCallback($p_event, &$p_header)
{
global $remove_dir;
$files = Session::read('doc_files_to_download');
$storedFile = $remove_dir . $p_header['stored_filename'];
if (!isset($files[$storedFile])) {
return 0;
}
$documentData = $files[$storedFile];
$documentNameFixed = DocumentManager::undoFixDocumentName($documentData['path'], $documentData['c_id'], $documentData['session_id'], $documentData['to_group_id']);
// Changes file.phps to file.php
$basename = basename($documentNameFixed);
$basenamePHPFixed = str_replace('.phps', '.php', $basename);
$documentNameFixed = str_replace($basename, $basenamePHPFixed, $documentNameFixed);
if ($remove_dir != '/') {
$documentNameFixed = str_replace($remove_dir, '/', $documentNameFixed);
if (substr($documentNameFixed, 0, 1) == '/') {
$documentNameFixed = substr($documentNameFixed, 1, api_strlen($documentNameFixed));
}
} else {
$documentNameFixed = ltrim($documentNameFixed, '/');
}
$p_header['stored_filename'] = $documentNameFixed;
return 1;
}
示例3: testProxyFactorySetsProxyMetadata
public function testProxyFactorySetsProxyMetadata()
{
$proxy = $this->dm->getReference($this->type, 1);
$proxyClass = get_class($proxy);
$this->assertTrue($this->dm->getClassMetadataFactory()->hasMetadataFor($proxyClass), "Proxy class '" . $proxyClass . "' should be registered as metadata.");
$this->assertSame($this->dm->getClassMetadata($proxyClass), $this->dm->getClassMetadata($this->type), "Metadata instances of proxy class and real instance have to be the same.");
}
示例4: setUp
public function setUp()
{
$this->db('PHPCR')->loadFixtures(array('Doctrine\\Bundle\\PHPCRBundle\\Tests\\Resources\\DataFixtures\\PHPCR\\LoadData'));
$this->dm = $this->db('PHPCR')->getOm();
$this->document = $this->dm->find(null, '/test/doc');
$this->assertNotNull($this->document, 'fixture loading not working');
$this->referrer = $this->dm->find(null, '/test/ref');
$this->assertNotNull($this->referrer, 'fixture loading not working');
}
示例5: testFind
public function testFind()
{
$doc = $this->dm->find($this->type, '/functional/thename');
$this->assertInstanceOf($this->type, $doc);
$this->assertEquals('/functional/thename', $doc->id);
$this->assertEquals('thename', $doc->nodename);
$this->assertNotNull($doc->parent);
$this->assertEquals('/functional', $doc->parent->getId());
return $doc;
}
示例6: testReferenceOneDifferentTargetDocuments
public function testReferenceOneDifferentTargetDocuments()
{
$ref1 = new MODEL\RefType1TestObj();
$ref1->id = '/functional/ref1';
$ref1->name = 'Ref1';
$ref2 = new MODEL\RefType2TestObj();
$ref2->id = '/functional/ref2';
$ref2->name = 'Ref2';
$this->dm->persist($ref1);
$this->dm->persist($ref2);
$referer1 = new ReferenceOneObj();
$referer1->id = '/functional/referer1';
$referer1->reference = $ref1;
$this->dm->persist($referer1);
$referer2 = new ReferenceOneObj();
$referer2->id = '/functional/referer2';
$referer2->reference = $ref2;
$this->dm->persist($referer2);
$this->dm->flush();
$this->dm->clear();
$referer = $this->dm->find('Doctrine\\Tests\\ODM\\PHPCR\\Functional\\ReferenceOneObj', '/functional/referer1');
$this->assertTrue($referer->reference instanceof MODEL\RefType1TestObj);
$referer = $this->dm->find('Doctrine\\Tests\\ODM\\PHPCR\\Functional\\ReferenceOneObj', '/functional/referer2');
$this->assertTrue($referer->reference instanceof MODEL\RefType2TestObj);
}
示例7: testPropertyname
public function testPropertyname()
{
$doc = new PropertyTestObj();
$doc->id = '/functional/p';
$doc->string = 'astring';
$doc->long = 123;
$doc->int = 321;
$doc->decimal = '343';
$doc->double = 3.14;
$doc->float = 2.8;
$date = new \DateTime();
$doc->date = $date;
$doc->boolean = true;
$doc->name = 'aname';
$doc->path = '../';
$doc->uri = 'http://cmf.symfony.com:8080/about.html#there';
$this->dm->persist($doc);
$this->dm->flush();
$this->dm->clear();
$this->assertTrue($this->node->getNode('p')->hasProperty('string'));
$this->assertTrue($this->node->getNode('p')->hasProperty('long'));
$this->assertTrue($this->node->getNode('p')->hasProperty('int'));
$this->assertTrue($this->node->getNode('p')->hasProperty('decimal'));
$this->assertTrue($this->node->getNode('p')->hasProperty('double'));
$this->assertTrue($this->node->getNode('p')->hasProperty('float'));
$this->assertTrue($this->node->getNode('p')->hasProperty('date'));
$this->assertTrue($this->node->getNode('p')->hasProperty('boolean'));
$this->assertTrue($this->node->getNode('p')->hasProperty('name'));
$this->assertTrue($this->node->getNode('p')->hasProperty('path'));
$this->assertTrue($this->node->getNode('p')->hasProperty('uri'));
$doc = $this->dm->find($this->type, '/functional/p');
$this->assertNotNull($doc->string);
$this->assertEquals('astring', $doc->string);
$this->assertNotNull($doc->long);
$this->assertEquals(123, $doc->long);
$this->assertNotNull($doc->int);
$this->assertEquals(321, $doc->int);
$this->assertNotNull($doc->decimal);
$this->assertEquals('343', $doc->decimal);
$this->assertNotNull($doc->double);
$this->assertEquals(3.14, $doc->double);
$this->assertNotNull($doc->float);
$this->assertEquals(2.8, $doc->float);
$this->assertNotNull($doc->date);
$this->assertEquals($date->getTimestamp(), $doc->date->getTimestamp());
$this->assertNotNull($doc->boolean);
$this->assertEquals(true, $doc->boolean);
$this->assertNotNull($doc->name);
$this->assertEquals('aname', $doc->name);
$this->assertNotNull($doc->path);
$this->assertEquals('../', $doc->path);
$this->assertNotNull($doc->uri);
$this->assertEquals('http://cmf.symfony.com:8080/about.html#there', $doc->uri);
}
示例8: testGetChanges
/**
* @depends testCreateBulkUpdater
*/
public function testGetChanges()
{
$updater = $this->couchClient->createBulkUpdater();
$updater->updateDocument(array("_id" => "test1", "foo" => "bar"));
$updater->updateDocument(array("_id" => "test2", "bar" => "baz"));
$updater->execute();
$changes = $this->couchClient->getChanges();
$this->assertArrayHasKey('results', $changes);
$this->assertEquals(2, count($changes['results']));
$this->assertEquals(2, $changes['last_seq']);
}
示例9: testCreateFromFile
public function testCreateFromFile()
{
$parent = new FixPHPCR1TestObj();
$parent->id = '/functional/filetest';
$this->dm->persist($parent);
$parent->file = new File();
$parent->file->setFileContentFromFilesystem(dirname(__FILE__) . '/_files/foo.txt');
$this->dm->flush();
$this->dm->clear();
$this->assertTrue($this->node->getNode('filetest')->hasNode('file'));
$this->assertTrue($this->node->getNode('filetest')->getNode('file')->hasNode('jcr:content'));
$this->assertTrue($this->node->getNode('filetest')->getNode('file')->getNode('jcr:content')->hasProperty('jcr:data'));
}
示例10: testCreatedDate
public function testCreatedDate()
{
$parent = new FileTestObj();
$parent->file = new File();
$parent->id = '/functional/filetest';
$parent->file->setFileContentFromFilesystem(dirname(__FILE__) . '/_files/foo.txt');
$this->dm->persist($parent);
$this->dm->flush();
$this->dm->clear();
$file = $this->dm->find('Doctrine\\ODM\\PHPCR\\Document\\File', '/functional/filetest/file');
$this->assertNotNull($file);
$this->assertNotNull($file->getCreated());
}
示例11: find
/**
* Finds a document by its identifier.
*
* @param $id The identifier.
* @param int $lockMode
* @param int $lockVersion
* @return object The document.
*/
public function find($id, $lockMode = LockMode::NONE, $lockVersion = null)
{
// Check identity map first
if ($document = $this->uow->tryGetById($id, $this->class->rootDocumentName)) {
if ($lockMode != LockMode::NONE) {
$this->dm->lock($document, $lockMode, $lockVersion);
}
return $document;
// Hit!
}
$id = array('_id' => $id);
if ($lockMode == LockMode::NONE) {
return $this->uow->getDocumentPersister($this->documentName)->load($id);
} else {
if ($lockMode == LockMode::OPTIMISTIC) {
if (!$this->class->isVersioned) {
throw LockException::notVersioned($this->documentName);
}
$document = $this->uow->getDocumentPersister($this->documentName)->load($id);
$this->uow->lock($document, $lockMode, $lockVersion);
return $document;
} else {
return $this->uow->getDocumentPersister($this->documentName)->load($id, null, array(), $lockMode);
}
}
}
示例12: testDetachWithRemove
/**
* @expectedException \InvalidArgumentException
*/
public function testDetachWithRemove()
{
$user = $this->dm->find($this->type, '/functional/user');
$user->username = "new-name";
$this->dm->detach($user);
$this->dm->remove($user);
}
示例13: testReorderChildren
public function testReorderChildren()
{
$this->testModifyChildren();
try {
$parent = $this->dm->find('Doctrine\\Tests\\ODM\\PHPCR\\Functional\\ChildrenTestObj', '/functional/parent');
$this->assertCount(2, $parent->allChildren);
$data = array('child-g' => $parent->allChildren->last(), 'child-f' => $parent->allChildren->first());
$parent->allChildren = new ArrayCollection($data);
$this->dm->flush();
$this->dm->clear();
$parent = $this->dm->find('Doctrine\\Tests\\ODM\\PHPCR\\Functional\\ChildrenTestObj', '/functional/parent');
$this->assertCount(count($data), $parent->allChildren);
$this->assertEquals(array_keys($data), $parent->allChildren->getKeys());
$child1 = new ChildrenTestObj();
$child1->name = 'Child H';
$child2 = new ChildrenTestObj();
$child2->name = 'Child I';
$child3 = new ChildrenTestObj();
$child3->name = 'Child J';
$data = array('child-i' => $child2, 'child-h' => $child1, 'child-f' => $parent->allChildren->last(), 'child-g' => $parent->allChildren->first(), 'child-j' => $child3);
$parent->allChildren = new ArrayCollection($data);
$this->dm->flush();
$this->dm->clear();
$parent = $this->dm->find('Doctrine\\Tests\\ODM\\PHPCR\\Functional\\ChildrenTestObj', '/functional/parent');
$this->assertCount(count($data), $parent->allChildren);
$this->assertEquals(array_keys($data), $parent->allChildren->getKeys());
} catch (UnsupportedRepositoryOperationException $e) {
$this->markTestSkipped('Reordering of children not supported');
}
}
示例14: testPropertyname
public function testPropertyname()
{
$doc = new TestObj();
$doc->id = '/functional/pn';
$doc->name = 'Testname';
$doc->othername = 'Testothername';
$this->dm->persist($doc);
$this->dm->flush();
$this->dm->clear();
$this->assertTrue($this->node->getNode('pn')->hasProperty('name'));
$this->assertTrue($this->node->getNode('pn')->hasProperty('myname'));
$doc = $this->dm->find($this->type, '/functional/pn');
$this->assertNotNull($doc->name);
$this->assertEquals('Testname', $doc->name);
$this->assertNotNull($doc->othername);
$this->assertEquals('Testothername', $doc->othername);
}
示例15: testProxyForChildIsUsed
function testProxyForChildIsUsed()
{
$doc = $this->dm->find($this->type, '/functional/thename');
$doc->child = new NameDoc();
$this->dm->flush();
$this->dm->clear();
$doc = $this->dm->find($this->type, '/functional/thename');
$this->assertTrue($doc->child instanceof Proxy);
}