public function load(ObjectManager $manager) { NodeHelper::createPath($manager->getPhpcrSession(), '/test'); $root = $manager->find(null, '/test'); $contentRoot = new Generic; $contentRoot->setNodename('contents'); $contentRoot->setParent($root); $manager->persist($contentRoot); $content = new StaticContent; $content->setName('content-1'); $content->setTitle('Content 1'); $content->setBody('Content 1'); $content->setParentDocument($contentRoot); $manager->persist($content); $content = new StaticContent; $content->setName('content-2'); $content->setTitle('Content 2'); $content->setBody('Content 2'); $content->setParentDocument($contentRoot); $manager->persist($content); $manager->flush(); }
public function setUp() { $this->dm = $this->createDocumentManager(array(__DIR__)); $repository = $this->dm->getPhpcrSession()->getRepository(); if (!$repository->getDescriptor('node.type.management.orderable.child.nodes.supported')) { $this->markTestSkipped('PHPCR repository doesn\'t support orderable child nodes'); } $this->node = $this->resetFunctionalNode($this->dm); $parent = $this->dm->find(null, $this->node->getPath()); $node1 = new Generic(); $node1->setParentDocument($parent); $node1->setNodename('source'); $this->dm->persist($node1); $this->childrenNames = array('first', 'second', 'third', 'fourth'); foreach ($this->childrenNames as $childName) { $child = new Generic(); $child->setNodename($childName); $child->setParentDocument($node1); $this->dm->persist($child); } $node2 = new Generic(); $node2->setNodename('target'); $node2->setParentDocument($parent); $this->dm->persist($node2); $this->dm->flush(); $this->dm->clear(); }
public function newAction(Request $request) { $dm = $this->get('doctrine_phpcr')->getManager('default'); $contentRoot = $dm->find(null, '/test/content'); if (!$contentRoot) { $root = $dm->find(null, '/test'); $contentRoot = new Generic(); $contentRoot->setNodename('content'); $contentRoot->setParent($root); $dm->persist($contentRoot); } $contentObject = new Content(); $contentObject->setParent($contentRoot); $form = $this->getContentForm($contentObject); if ($request->isMethod('POST')) { $form->bind($request); if ($form->isValid()) { // persist $dm = $this->get('doctrine_phpcr')->getManager('default'); $dm->persist($contentObject); $dm->flush(); } } return $this->redirect($this->generateUrl('phpcr_file_test')); }
public function load(ObjectManager $manager) { NodeHelper::createPath($manager->getPhpcrSession(), '/test'); $testDataDir = realpath(__DIR__ . '/../../app/Resources/data'); $root = $manager->find(null, '/test'); // media root $mediaRoot = new Generic(); $mediaRoot->setNodename('media'); $mediaRoot->setParent($root); $manager->persist($mediaRoot); // content root $contentRoot = new Generic(); $contentRoot->setNodename('content'); $contentRoot->setParent($root); $manager->persist($contentRoot); // File $file = new File(); $file->setParent($mediaRoot); $file->setName('file-1.txt'); $file->setContentFromString('Test file 1.'); $file->setContentType('text/plain'); $manager->persist($file); // Image $image = new Image(); $image->setParent($mediaRoot); $image->setName('cmf-logo.png'); $image->setFileContentFromFilesystem($testDataDir . '/cmf-logo.png'); $manager->persist($image); $image2 = new Image(); $image2->setParent($contentRoot); $image2->setName('cmf-logo-2.png'); $image2->setFileContentFromFilesystem($testDataDir . '/cmf-logo.png'); $manager->persist($image2); // Content with image $content = new Content(); $content->setParent($contentRoot); $content->setName('content-with-image'); $content->setTitle('Content document with image embedded'); $contentImage = new Image(); $contentImage->setFileContentFromFilesystem($testDataDir . '/cmf-logo.png'); $content->setFile($contentImage); $manager->persist($content); // Content with file $content2 = new Content(); $content2->setParent($contentRoot); $content2->setName('content-with-file'); $content2->setTitle('Content document with file attached'); $contentFile = new File(); $contentFile->setFileContentFromFilesystem($testDataDir . '/testfile.txt'); $content2->setFile($contentFile); $manager->persist($content2); $manager->flush(); }
public function setUp() { $this->dm = $this->db('PHPCR')->getOm(); $this->db('PHPCR')->purgeRepository(true); $this->db('PHPCR')->createTestNode(); $rootDocument = $this->dm->find(null, '/test'); $document = new Generic(); $document->setNodeName('foo'); $document->setParentDocument($rootDocument); $this->dm->persist($document); $document = new Generic(); $document->setNodeName('bar'); $document->setParentDocument($rootDocument); $this->dm->persist($document); $this->dm->flush(); $this->repositoryRegistry = $this->container->get('cmf_resource.registry'); }
public function load(ObjectManager $manager) { NodeHelper::createPath($manager->getPhpcrSession(), '/test'); $root = $manager->find(null, '/test'); $parent = new Generic(); $parent->setParent($root); $parent->setNodename('routing'); $manager->persist($parent); $route = new Route(); $route->setParentDocument($parent); $route->setName('route-1'); $manager->persist($route); $redirectRoute = new RedirectRoute(); $redirectRoute->setParentDocument($parent); $redirectRoute->setName('redirect-route-1'); $manager->persist($redirectRoute); $manager->flush(); }
private function buildRoutes() { $root = $this->getDm()->find(null, self::ROUTE_ROOT); $route = new Route(); $route->setPosition($root, 'testroute'); $route->setDefault('_format', 'html'); $this->getDm()->persist($route); // smuggle a non-route thing into the repository $noroute = new Generic(); $noroute->setParentDocument($route); $noroute->setNodename('noroute'); $this->getDm()->persist($noroute); $childroute = new Route(); $childroute->setPosition($noroute, 'child'); $childroute->setDefault('_format', 'json'); $this->getDm()->persist($childroute); $this->getDm()->flush(); $this->getDm()->clear(); }
public function load(ObjectManager $manager) { NodeHelper::createPath($manager->getPhpcrSession(), '/test'); $root = $manager->find(null, '/test'); $parent = new Generic(); $parent->setParentDocument($root); $parent->setNodename('routing'); $manager->persist($parent); $routeCollection = new Route(); $routeCollection->setParentDocument($parent); $routeCollection->setMethods(array('POST', 'GET', 'PUT')); # Todo check if we can add a type and set defaults prePersist? $routeCollection->setName('collection'); $manager->persist($routeCollection); $route = new Route(); $route->setParentDocument($routeCollection); $route->setName('get-1'); $route->setMethods(array(Request::METHOD_GET)); $manager->persist($route); $route = new Route(); $route->setParentDocument($routeCollection); $route->setName('post-1'); $route->setMethods(array(Request::METHOD_POST)); $manager->persist($route); $route = new Route(); $route->setParentDocument($routeCollection); $route->setName('put-1'); $route->setMethods(array(Request::METHOD_PUT)); $manager->persist($route); $route = new Route(); $route->setParentDocument($routeCollection); $route->setName('delete-1'); $route->setMethods(array(Request::METHOD_DELETE)); $manager->persist($route); $route = new Route(); $route->setParentDocument($routeCollection); $route->setName('patch-1'); $route->setMethods(array(Request::METHOD_PATCH)); $manager->persist($route); $manager->flush(); }
public function testGetRouteCollectionForRequest() { $route = new Route(); $root = self::$dm->find(null, self::ROUTE_ROOT); $route->setPosition($root, 'testroute'); self::$dm->persist($route); // smuggle a non-route thing into the repository $noroute = new Generic(); $noroute->setParent($route); $noroute->setNodename('noroute'); self::$dm->persist($noroute); $childroute = new Route(); $childroute->setPosition($noroute, 'child'); self::$dm->persist($childroute); self::$dm->flush(); self::$dm->clear(); $routes = self::$repository->getRouteCollectionForRequest(Request::create('/testroute/noroute/child')); $this->assertCount(3, $routes); foreach ($routes as $route) { $this->assertInstanceOf('Symfony\\Cmf\\Component\\Routing\\RouteObjectInterface', $route); } }
public function load(ObjectManager $manager) { $root = $manager->find(null, '/'); $test = new Generic(); $test->setNodename('test'); $test->setParentDocument($root); $manager->persist($test); $content = new Generic(); $content->setNodename('content'); $content->setParentDocument($test); $manager->persist($content); $aContent = new Content(); $aContent->id = '/test/content/a'; $manager->persist($aContent); $bContent = new Content(); $bContent->id = '/test/content/b'; $manager->persist($bContent); $cms = new Generic(); $cms->setNodename('cms'); $cms->setParentDocument($test); $manager->persist($cms); $routes = new Generic(); $routes->setNodename('routes'); $routes->setParentDocument($cms); $manager->persist($routes); $aRoute = new Route(); $aRoute->setName('a'); $aRoute->setParentDocument($routes); $aRoute->setContent($aContent); $manager->persist($aRoute); $bRoute = new Route(); $bRoute->setName('b'); $bRoute->setParentDocument($routes); $bRoute->setContent($bContent); $manager->persist($bRoute); $manager->flush(); }
/** * @param DocumentManager $manager */ public function load(ObjectManager $manager) { $base = new Generic(); $base->setNodename('test'); $base->setParentDocument($manager->find(null, '/')); $doc = new TestDocument(); $doc->parent = $base; $doc->nodename = 'doc'; $doc->bool = true; $doc->date = new \DateTime('2014-01-14'); $doc->integer = 42; $doc->long = 24; $doc->number = 3.14; $doc->text = 'text content'; $manager->persist($doc); $doc = new TestDocument(); $doc->parent = $base; $doc->nodename = 'doc2'; $doc->bool = true; $doc->date = new \DateTime('2014-01-14'); $doc->integer = 42; $doc->long = 24; $doc->number = 3.14; $doc->text = 'text content'; $manager->persist($doc); $ref = new ReferrerDocument(); $ref->id = '/test/ref'; $ref->addDocument($doc); $manager->persist($ref); $manager->flush(); $node = $manager->getPhpcrSession()->getNode('/test/doc'); $node->addNode('child'); $node->addNode('second'); $manager->getPhpcrSession()->save(); $manager->clear(); }
public function load(ObjectManager $manager) { NodeHelper::createPath($manager->getPhpcrSession(), '/test'); $root = $manager->find(null, '/test'); $parent = new Generic(); $parent->setParentDocument($root); $parent->setNodename('blocks'); $manager->persist($parent); //Simple $block = new SimpleBlock(); $block->setParentDocument($parent); $block->setName('block-1'); $block->setTitle('block-1-title'); $block->setBody('block-1-body'); $manager->persist($block); $block = new SimpleBlock(); $block->setParentDocument($parent); $block->setName('block-2'); $block->setTitle('block-2-title'); $block->setBody('block-2-body'); $block->setPublishable(false); $manager->persist($block); //Action $actionBlockOne = new ActionBlock(); $actionBlockOne->setParentDocument($parent); $actionBlockOne->setName('action-block-1'); $actionBlockOne->setActionName('cmf_block_test.test_controller:dummyAction'); $actionBlockOne->setPublishable(true); $manager->persist($actionBlockOne); $actionBlockTwo = new ActionBlock(); $actionBlockTwo->setParentDocument($parent); $actionBlockTwo->setName('action-block-2'); $actionBlockTwo->setActionName('FooBundle:Bar:actionTwo'); $actionBlockTwo->setPublishable(false); $manager->persist($actionBlockTwo); //Container $childBlockOne = new SimpleBlock(); $childBlockOne->setName('block-child-1'); $childBlockOne->setTitle('block-child-1-title'); $childBlockOne->setBody('block-child-1-body'); $containerBlock = new ContainerBlock(); $containerBlock->setParentDocument($parent); $containerBlock->setName('container-block-1'); $containerBlock->addChild($childBlockOne); $manager->persist($containerBlock); $block = new ContainerBlock(); $block->setParentDocument($parent); $block->setName('container-block-2'); $block->setPublishable(false); $manager->persist($block); //Reference $block = new ReferenceBlock(); $block->setParentDocument($parent); $block->setName('reference-block-1'); $block->setReferencedBlock($actionBlockOne); $manager->persist($block); $block = new ReferenceBlock(); $block->setParentDocument($parent); $block->setName('reference-block-2'); $block->setReferencedBlock($actionBlockTwo); $block->setPublishable(false); $manager->persist($block); // Menu Nodes NodeHelper::createPath($manager->getPhpcrSession(), '/test/menus'); $menuRoot = $manager->find(null, '/test/menus'); $menu = new Menu(); $menu->setName('test-menu'); $menu->setLabel('Test Menu'); $menu->setParentDocument($menuRoot); $manager->persist($menu); $menuNodeOne = new MenuNode(); $menuNodeOne->setName('menu-node-1'); $menuNodeOne->setLabel('menu-node-1'); $menuNodeOne->setParentDocument($menu); $manager->persist($menuNodeOne); $menuNodeTwo = new MenuNode(); $menuNodeTwo->setName('menu-node-2'); $menuNodeTwo->setLabel('menu-node-2'); $menuNodeTwo->setParentDocument($menu); $manager->persist($menuNodeTwo); //Menu $block = new MenuBlock(); $block->setParentDocument($parent); $block->setName('menu-block-1'); $block->setMenuNode($menuNodeOne); $manager->persist($block); $block = new MenuBlock(); $block->setParentDocument($parent); $block->setName('menu-block-2'); $block->setMenuNode($menuNodeTwo); $block->setPublishable(false); $manager->persist($block); //String $block = new StringBlock(); $block->setParentDocument($parent); $block->setName('string-block-1'); $block->setBody('string-block-1-body'); $manager->persist($block); $block = new StringBlock(); $block->setParentDocument($parent); $block->setName('string-block-2'); $block->setBody('string-block-2-body'); $block->setPublishable(false); $manager->persist($block); $manager->flush(); }
/** * {@inheritDoc} */ public function __toString() { $this->__initializer__ && $this->__initializer__->__invoke($this, '__toString', array()); return parent::__toString(); }
/** * Convert the given generic document to an auto route document. * * @param Generic $document * @param object $contentDocument * @param string $autoRouteTag * @param string $routeType * * @return AutoRouteInterface */ private function migrateGenericToAutoRoute(Generic $document, $contentDocument, $autoRouteTag, $routeType) { $autoRouteClassName = $this->autoRouteFqcn; $mapper = $this->dm->getConfiguration()->getDocumentClassMapper(); $mapper->writeMetadata($this->dm, $document->getNode(), $autoRouteClassName); $this->dm->getPhpcrSession()->save(); // Detach is needed to force Doctrine to re-load the node $this->dm->detach($document); $autoRoute = $this->dm->find(null, $document->getId()); if (!$autoRoute instanceof $autoRouteClassName) { throw new \RuntimeException(sprintf('Failed to migrate existing, non-managed, PHPCR node at "%s" to a managed document implementing ' . 'the AutoRouteInterface. It is an instance of "%s".', $document->getId(), get_class($autoRoute))); } $autoRoute->setContent($contentDocument); $autoRoute->setAutoRouteTag($autoRouteTag); $autoRoute->setType($routeType); return $autoRoute; }
/** * {@inheritDoc} */ public function createAutoRoute($uri, $contentDocument, $autoRouteTag) { $path = $this->baseRoutePath; $document = $parentDocument = $this->dm->find(null, $path); if (null === $parentDocument) { throw new \RuntimeException(sprintf('The "route_basepath" configuration points to a non-existant path "%s".', $path)); } $segments = preg_split('#/#', $uri, null, PREG_SPLIT_NO_EMPTY); $headName = array_pop($segments); foreach ($segments as $segment) { $path .= '/' . $segment; $document = $this->dm->find(null, $path); if (null === $document) { $document = new Generic(); $document->setParent($parentDocument); $document->setNodeName($segment); $this->dm->persist($document); } $parentDocument = $document; } $headRoute = new $this->autoRouteFqcn(); $headRoute->setContent($contentDocument); $headRoute->setName($headName); $headRoute->setParent($document); $headRoute->setAutoRouteTag($autoRouteTag); $headRoute->setType(AutoRouteInterface::TYPE_PRIMARY); return $headRoute; }