public function createDocumentManager(array $paths = null)
 {
     $reader = new \Doctrine\Common\Annotations\AnnotationReader();
     $reader->addGlobalIgnoredName('group');
     if (empty($paths)) {
         $paths = array(__DIR__ . "/../../Models");
     }
     $metaDriver = new AnnotationDriver($reader, $paths);
     $factoryclass = isset($GLOBALS['DOCTRINE_PHPCR_FACTORY']) ? $GLOBALS['DOCTRINE_PHPCR_FACTORY'] : '\\Jackalope\\RepositoryFactoryJackrabbit';
     if ($factoryclass === '\\Jackalope\\RepositoryFactoryDoctrineDBAL') {
         $params = array();
         foreach ($GLOBALS as $key => $value) {
             if (0 === strpos($key, 'jackalope.doctrine.dbal.')) {
                 $params[substr($key, strlen('jackalope.doctrine.dbal.'))] = $value;
             }
         }
         if (isset($params['username'])) {
             $params['user'] = $params['username'];
         }
         $GLOBALS['jackalope.doctrine_dbal_connection'] = \Doctrine\DBAL\DriverManager::getConnection($params);
     }
     $parameters = array_intersect_key($GLOBALS, $factoryclass::getConfigurationKeys());
     // factory will return null if it gets unknown parameters
     $repository = $factoryclass::getRepository($parameters);
     $this->assertNotNull($repository, 'There is an issue with your parameters: ' . var_export(array_keys($parameters), true));
     $workspace = isset($GLOBALS['DOCTRINE_PHPCR_WORKSPACE']) ? $GLOBALS['DOCTRINE_PHPCR_WORKSPACE'] : 'tests';
     $user = isset($GLOBALS['DOCTRINE_PHPCR_USER']) ? $GLOBALS['DOCTRINE_PHPCR_USER'] : '';
     $pass = isset($GLOBALS['DOCTRINE_PHPCR_PASS']) ? $GLOBALS['DOCTRINE_PHPCR_PASS'] : '';
     $credentials = new \PHPCR\SimpleCredentials($user, $pass);
     $session = $repository->login($credentials, $workspace);
     $this->sessions[] = $session;
     $config = new \Doctrine\ODM\PHPCR\Configuration();
     $config->setMetadataDriverImpl($metaDriver);
     return DocumentManager::create($session, $config);
 }
 protected function getMockDocumentManager(EventManager $evm = null)
 {
     $config = new \Doctrine\ODM\PHPCR\Configuration();
     $config->setMetadataDriverImpl($this->getMetadataDriverImplementation());
     $this->dm = DocumentManager::create($this->getSession(), $config, $evm ?: $this->getEventManager());
     return $this->dm;
 }
 protected function setUp()
 {
     $params = array('driver' => 'pdo_mysql', 'host' => 'localhost', 'user' => 'root', 'password' => 'testmachine', 'dbname' => 'v_products_tests');
     $workspace = 'default';
     $user = '******';
     $pass = '******';
     $dbConn = \Doctrine\DBAL\DriverManager::getConnection($params);
     $parameters = array('jackalope.doctrine_dbal_connection' => $dbConn);
     /**
             $schema = RepositorySchema::create();
             foreach ($schema->toSql($dbConn->getDatabasePlatform()) as $sql) {
                 $dbConn->exec($sql);
             } */
     $repositoryFactory = new \Jackalope\RepositoryFactoryDoctrineDBAL();
     $repository = $repositoryFactory->getRepository($parameters);
     $credentials = new \PHPCR\SimpleCredentials(null, null);
     $session = $repository->login($credentials, $workspace);
     $locatorXml = new SymfonyFileLocator(array(__DIR__ . '/../../../lib/Vespolina/Product/Mapping' => 'Vespolina\\Entity\\Product', __DIR__ . '/../../../vendor/vespolina/pricing/lib/Vespolina/Pricing/Mapping' => 'Vespolina\\Entity\\Pricing', __DIR__ . '/../../../vendor/vespolina/taxonomy/lib/Vespolina/Taxonomy/Mapping' => 'Vespolina\\Entity\\Taxonomy'), '.phpcr.xml');
     $xmlDriver = new XmlDriver($locatorXml);
     $config = new \Doctrine\ODM\PHPCR\Configuration();
     $config->setMetadataDriverImpl($xmlDriver);
     $config->setMetadataCacheImpl(new ArrayCache());
     $config->setAutoGenerateProxyClasses(true);
     $documentManager = \Doctrine\ODM\PHPCR\DocumentManager::create($session, $config);
     $this->productGateway = new ProductDoctrinePHPCRGateway($documentManager, 'Vespolina\\Entity\\Product\\Product');
     $this->taxonomyGateway = new TaxonomyPHPCRGateway($documentManager, 'Vespolina\\Entity\\Taxonomy\\TaxonomyNode', '/');
     $this->taxonomyRootNode = $documentManager->find(null, '/');
     parent::setUp();
 }
Exemplo n.º 4
0
 /**
  * @covers Doctrine\ODM\PHPCR\Configuration::addDocumentNamespace
  * @covers Doctrine\ODM\PHPCR\Configuration::getDocumentNamespace
  * @covers Doctrine\ODM\PHPCR\Configuration::setDocumentNamespaces
  */
 public function testDocumentNamespace()
 {
     $config = new \Doctrine\ODM\PHPCR\Configuration();
     $config->addDocumentNamespace('foo', 'Documents\\Bar');
     $this->assertEquals('Documents\\Bar', $config->getDocumentNamespace('foo'));
     $config = new \Doctrine\ODM\PHPCR\Configuration();
     $config->setDocumentNamespaces(array('foo' => 'Documents\\Bar'));
     $this->assertEquals('Documents\\Bar', $config->getDocumentNamespace('foo'));
     $this->setExpectedException('Doctrine\\ODM\\PHPCR\\PHPCRException');
     $config->getDocumentNamespace('bar');
 }
 protected function getAnnotationDriver()
 {
     AnnotationRegistry::registerFile($this->app['path.base'] . '/vendor/doctrine/phpcr-odm/lib/Doctrine/ODM/PHPCR/Mapping/Annotations/DoctrineAnnotations.php');
     $reader = new AnnotationReader();
     $driver = new AnnotationDriver($reader, [$this->app['path.base'] . '/app/']);
     $config = new \Doctrine\ODM\PHPCR\Configuration();
     $config->setMetadataDriverImpl($driver);
     $this->app->singleton('phpcr.manager', function () use($config) {
         return DocumentManager::create($this->app->make('phpcr.session'), $config);
     });
     return $driver;
 }
 public function createDocumentManager(array $paths = null)
 {
     $reader = new AnnotationReader();
     $reader->addGlobalIgnoredName('group');
     if (empty($paths)) {
         $paths = array(__DIR__ . "/../../../Models");
     }
     $metaDriver = new PhpcrAnnotationDriver($reader, $paths);
     $factoryclass = isset($GLOBALS['DOCTRINE_PHPCR_FACTORY']) ? $GLOBALS['DOCTRINE_PHPCR_FACTORY'] : '\\Jackalope\\RepositoryFactoryJackrabbit';
     if ($factoryclass === '\\Jackalope\\RepositoryFactoryDoctrineDBAL') {
         $GLOBALS['jackalope.doctrine_dbal_connection'] = $this->connection;
     }
     /** @var $factory RepositoryFactoryInterface */
     $factory = new $factoryclass();
     $parameters = array_intersect_key($GLOBALS, $factory->getConfigurationKeys());
     // factory returns null if it gets unknown parameters
     $repository = $factory->getRepository($parameters);
     $this->assertNotNull($repository, 'There is an issue with your parameters: ' . var_export(array_keys($parameters), true));
     $workspace = isset($GLOBALS['DOCTRINE_PHPCR_WORKSPACE']) ? $GLOBALS['DOCTRINE_PHPCR_WORKSPACE'] : 'tests';
     $user = isset($GLOBALS['DOCTRINE_PHPCR_USER']) ? $GLOBALS['DOCTRINE_PHPCR_USER'] : '';
     $pass = isset($GLOBALS['DOCTRINE_PHPCR_PASS']) ? $GLOBALS['DOCTRINE_PHPCR_PASS'] : '';
     $credentials = new \PHPCR\SimpleCredentials($user, $pass);
     $session = $repository->login($credentials, $workspace);
     $this->sessions[] = $session;
     $config = new \Doctrine\ODM\PHPCR\Configuration();
     $config->setMetadataDriverImpl($metaDriver);
     $eventManager = new EventManager();
     $this->dm = DocumentManager::create($session, $config, $eventManager);
 }
 /**
  * Gets the 'doctrine_phpcr.odm.default_document_manager' service.
  *
  * This service is shared.
  * This method always returns the same instance of the service.
  *
  * @return \Doctrine\ODM\PHPCR\DocumentManager A Doctrine\ODM\PHPCR\DocumentManager instance.
  */
 protected function getDoctrinePhpcr_Odm_DefaultDocumentManagerService()
 {
     $a = $this->get('annotation_reader');
     $b = new \Doctrine\Common\Cache\ArrayCache();
     $b->setNamespace('sf2phpcr_default_8abfb5439f3e3c6366a9a2a7d225b51607df7dd909070cd38fddb5e661b6f197');
     $c = new \Doctrine\ODM\PHPCR\Mapping\Driver\AnnotationDriver($a, array(0 => $this->targetDirs[3] . '/vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Document', 1 => $this->targetDirs[3] . '/vendor/sonata-project/user-bundle/Document', 2 => $this->targetDirs[3] . '/src/Acme/BasicCmsBundle/Document', 3 => $this->targetDirs[3] . '/src/Application/Sonata/UserBundle/Document', 4 => $this->targetDirs[3] . '/vendor/doctrine/phpcr-odm/lib/Doctrine/ODM/PHPCR/Document'));
     $d = new \Doctrine\Common\Persistence\Mapping\Driver\SymfonyFileLocator(array($this->targetDirs[3] . '/vendor/symfony-cmf/routing-bundle/Resources/config/doctrine-model' => 'Symfony\\Cmf\\Bundle\\RoutingBundle\\Model', $this->targetDirs[3] . '/vendor/symfony-cmf/routing-bundle/Resources/config/doctrine-phpcr' => 'Symfony\\Cmf\\Bundle\\RoutingBundle\\Doctrine\\Phpcr'), '.phpcr.xml');
     $e = new \Doctrine\ODM\PHPCR\Mapping\Driver\XmlDriver($d);
     $f = new \Doctrine\Common\Persistence\Mapping\Driver\SymfonyFileLocator(array($this->targetDirs[3] . '/vendor/symfony-cmf/menu-bundle/Resources/config/doctrine-model' => 'Symfony\\Cmf\\Bundle\\MenuBundle\\Model', $this->targetDirs[3] . '/vendor/symfony-cmf/menu-bundle/Resources/config/doctrine-phpcr' => 'Symfony\\Cmf\\Bundle\\MenuBundle\\Doctrine\\Phpcr'), '.phpcr.xml');
     $g = new \Doctrine\ODM\PHPCR\Mapping\Driver\XmlDriver($f);
     $h = new \Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain();
     $h->addDriver($c, 'FOS\\UserBundle\\Document');
     $h->addDriver($c, 'Sonata\\UserBundle\\Document');
     $h->addDriver($c, 'Acme\\BasicCmsBundle\\Document');
     $h->addDriver($c, 'Application\\Sonata\\UserBundle\\Document');
     $h->addDriver($c, 'Doctrine\\ODM\\PHPCR\\Document');
     $h->addDriver(new \Doctrine\ODM\PHPCR\Mapping\Driver\XmlDriver(new \Doctrine\Common\Persistence\Mapping\Driver\DefaultFileLocator(array(0 => $this->targetDirs[3] . '/vendor/symfony-cmf/routing-bundle/Resources/config/doctrine-base'), '.phpcr.xml')), 'Symfony\\Component\\Routing');
     $h->addDriver($e, 'Symfony\\Cmf\\Bundle\\RoutingBundle\\Model');
     $h->addDriver($e, 'Symfony\\Cmf\\Bundle\\RoutingBundle\\Doctrine\\Phpcr');
     $h->addDriver(new \Doctrine\ODM\PHPCR\Mapping\Driver\XmlDriver(new \Doctrine\Common\Persistence\Mapping\Driver\SymfonyFileLocator(array($this->targetDirs[3] . '/vendor/symfony-cmf/routing-auto-bundle/Resources/config/doctrine-model' => 'Symfony\\Cmf\\Bundle\\RoutingAutoBundle\\Model'), '.phpcr.xml')), 'Symfony\\Cmf\\Bundle\\RoutingAutoBundle\\Model');
     $h->addDriver($g, 'Symfony\\Cmf\\Bundle\\MenuBundle\\Model');
     $h->addDriver($g, 'Symfony\\Cmf\\Bundle\\MenuBundle\\Doctrine\\Phpcr');
     $i = new \Doctrine\ODM\PHPCR\Configuration();
     $i->setDocumentNamespaces(array('FOSUserBundle' => 'FOS\\UserBundle\\Document', 'SonataUserBundle' => 'Sonata\\UserBundle\\Document', 'AcmeBasicCmsBundle' => 'Acme\\BasicCmsBundle\\Document', 'ApplicationSonataUserBundle' => 'Application\\Sonata\\UserBundle\\Document', '__PHPCRODM__' => 'Doctrine\\ODM\\PHPCR\\Document'));
     $i->setMetadataCacheImpl($b);
     $i->setMetadataDriverImpl($h, false);
     $i->setProxyDir(__DIR__ . '/doctrine/PHPCRProxies');
     $i->setProxyNamespace('PHPCRProxies');
     $i->setAutoGenerateProxyClasses(true);
     $i->setClassMetadataFactoryName('Doctrine\\ODM\\PHPCR\\Mapping\\ClassMetadataFactory');
     $i->setDefaultRepositoryClassName('Doctrine\\ODM\\PHPCR\\DocumentRepository');
     $i->addDocumentNamespace('CmfRoutingBundle', 'Symfony\\Cmf\\Bundle\\RoutingBundle\\Doctrine\\Phpcr');
     $i->addDocumentNamespace('CmfRoutingAutoBundle', 'Symfony\\Cmf\\Bundle\\RoutingAutoBundle\\Model');
     $i->addDocumentNamespace('CmfMenuBundle', 'Symfony\\Cmf\\Bundle\\MenuBundle\\Doctrine\\Phpcr');
     $j = new \Symfony\Bridge\Doctrine\ContainerAwareEventManager($this);
     $j->addEventSubscriber($this->get('cmf_core.persistence.phpcr.non_translatable_metadata_listener'));
     $j->addEventListener(array(0 => 'postLoad', 1 => 'postPersist', 2 => 'postMove'), $this->get('cmf_routing.phpcrodm_route_idprefix_listener'));
     $j->addEventListener(array(0 => 'onFlush', 1 => 'endFlush'), $this->get('cmf_routing_auto.phpcrodm_auto_route_listener'));
     return $this->services['doctrine_phpcr.odm.default_document_manager'] = new \Doctrine\ODM\PHPCR\DocumentManager($this->get('doctrine_phpcr.default_session'), $i, $j);
 }
Exemplo n.º 8
0
 /**
  * Gets the 'doctrine_phpcr.odm.default_document_manager' service.
  *
  * This service is shared.
  * This method always returns the same instance of the service.
  *
  * @return Doctrine\ODM\PHPCR\DocumentManager A Doctrine\ODM\PHPCR\DocumentManager instance.
  */
 protected function getDoctrinePhpcr_Odm_DefaultDocumentManagerService()
 {
     $a = $this->get('annotation_reader');
     $b = new \Doctrine\Common\Cache\ArrayCache();
     $b->setNamespace('sf2phpcr_default_1f474d7255df8ad758b666714222d890');
     $c = new \Doctrine\ODM\PHPCR\Mapping\Driver\AnnotationDriver($a, array(0 => '/home/markus/development/php.labs/symfony/src/Mtol/TodoBundle/Document', 1 => '/home/markus/development/php.labs/symfony/vendor/doctrine/phpcr-odm/lib/Doctrine/ODM/PHPCR/Document'));
     $d = new \Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain();
     $d->addDriver($c, 'Mtol\\TodoBundle\\Document');
     $d->addDriver($c, 'Doctrine\\ODM\\PHPCR\\Document');
     $e = new \Doctrine\ODM\PHPCR\Configuration();
     $e->setDocumentNamespaces(array('MtolTodoBundle' => 'Mtol\\TodoBundle\\Document', '__PHPCRODM__' => 'Doctrine\\ODM\\PHPCR\\Document'));
     $e->setMetadataCacheImpl($b);
     $e->setMetadataDriverImpl($d, false);
     $e->setProxyDir('/home/markus/development/php.labs/symfony/app/cache/dev/doctrine/PHPCRProxies');
     $e->setProxyNamespace('PHPCRProxies');
     $e->setAutoGenerateProxyClasses(true);
     return $this->services['doctrine_phpcr.odm.default_document_manager'] = new \Doctrine\ODM\PHPCR\DocumentManager($this->get('doctrine_phpcr.default_session'), $e, new \Symfony\Bridge\Doctrine\ContainerAwareEventManager($this));
 }