public function adminRefreshDatabaseAction(Request $request, Application $app) { $conn = $app['db']; $em = $app['doctrine.orm.entity_manager']; $params = $conn->getParams(); $name = isset($params['path']) ? $params['path'] : (isset($params['dbname']) ? $params['dbname'] : false); try { $conn->getSchemaManager()->dropDatabase($name); $conn->getSchemaManager()->createDatabase($name); $conn->close(); } catch (\Exception $e) { return 1; } $classes = []; foreach ($app['authbucket_oauth2.model'] as $class) { $classes[] = $em->getClassMetadata($class); } PersistentObject::setObjectManager($em); $tool = new SchemaTool($em); $tool->dropSchema($classes); $tool->createSchema($classes); $purger = new ORMPurger(); $executor = new ORMExecutor($em, $purger); $loader = new Loader(); $loader->loadFromDirectory(__DIR__ . '/../DataFixtures/ORM'); $executor->execute($loader->getFixtures()); return $app->redirect($app['url_generator']->generate('index')); }
public function setUp() { // register our custom type if (!Type::hasType('hstore')) { Type::addType('hstore', 'EasyBib\\Doctrine\\Types\\Hstore'); } $isDevMode = true; $doctrineConfig = Setup::createAnnotationMetadataConfiguration(array(__DIR__ . '/Entity'), $isDevMode); // database configuration parameters $rootTestsFolder = dirname(dirname(dirname(dirname(__DIR__)))); $this->isTravis = getenv("TRAVIS"); if (file_exists($rootTestsFolder . '/db-config.php')) { $dbConfig = (include $rootTestsFolder . '/db-config.php'); } elseif (false !== $this->isTravis) { $dbConfig = (include $rootTestsFolder . '/db-config-travisci.php'); } else { throw new \RuntimeException("No database configuration found."); } // create the entity manager $this->em = EntityManager::create($dbConfig, $doctrineConfig); // enable 'hstore' $this->em->getConnection()->exec("CREATE EXTENSION IF NOT EXISTS hstore"); // register type with DBAL $this->em->getConnection()->getDatabasePlatform()->registerDoctrineTypeMapping('hstore', 'hstore'); // make the PersistentObject happy PersistentObject::setObjectManager($this->em); // create table $this->setUpSchema($this->em); }
public function indexAction() { $em = $this->getDoctrine()->getEntityManager(); PersistentObject::setObjectManager($em); $entries = $em->getRepository('NilsWisiol\\CreditCardBundle\\Entity\\Entry')->findBy(array(), array('date' => 'asc')); return $this->render('NilsWisiolCreditCardBundle:Statistics:index.html.twig', array('entries' => $entries)); }
/** * {@inheritdoc} */ public function boot() { $registry = $this->container->get('doctrine'); $em = $registry->getManager(); $this->container->set('em', $em); PersistentObject::setObjectManager($em); }
protected function setUp() { parent::setUp(); try { $this->_schemaTool->createSchema(array($this->_em->getClassMetadata('Doctrine\\Tests\\ORM\\Functional\\PersistentEntity'))); } catch (\Exception $e) { } PersistentObject::setObjectManager($this->_em); }
protected function setUp() { parent::setUp(); try { $this->_schemaTool->createSchema(array($this->_em->getClassMetadata(__NAMESPACE__ . '\\PersistentCollectionHolder'), $this->_em->getClassMetadata(__NAMESPACE__ . '\\PersistentCollectionContent'))); } catch (\Exception $e) { } PersistentObject::setObjectManager($this->_em); }
public function setUpDatabase() { $isDevMode = true; $doctrineConfig = Setup::createAnnotationMetadataConfiguration([__DIR__ . '../TsVector/Fixture'], $isDevMode); $doctrineConfig->addCustomStringFunction('tsquery', TsQueryFunction::class); $doctrineConfig->addCustomStringFunction('tsrank', TsRankFunction::class); $doctrineConfig->addCustomStringFunction('tsrankcd', TsRankCDFunction::class); $dbConfig = ['host' => 'localhost', 'user' => 'postgres', 'dbname' => 'ts_vector_test', 'driver' => 'pdo_pgsql']; $this->em = EntityManager::create($dbConfig, $doctrineConfig); $this->em->getConnection()->getDatabasePlatform()->registerDoctrineTypeMapping('tsvector', 'tsvector'); $this->schemaTool = new SchemaTool($this->em); PersistentObject::setObjectManager($this->em); }
public function getManagerForClass($class) { if (is_subclass_of($class, 'Doctrine\\Common\\Persistence\\PersistentObject')) { return PersistentObject::getObjectManager(); } else { foreach ($this->getManagerNames() as $id) { $manager = $this->getManager($id); if (!$manager->getMetadataFactory()->isTransient($class)) { return $manager; } } } return null; }
/** * @before * * @throws \Doctrine\ORM\ORMException */ public function setUpDatabase() { $isDevMode = true; // database configuration parameters $dbConfig = array('driver' => 'pdo_sqlite', 'memory' => true, 'path' => ':memory:'); $paths = [__DIR__ . '/../src']; $doctrineConfig = Setup::createConfiguration($isDevMode); $driver = new AnnotationDriver(new AnnotationReader(), $paths); AnnotationRegistry::registerLoader('class_exists'); $doctrineConfig->setMetadataDriverImpl($driver); $this->em = EntityManager::create($dbConfig, $doctrineConfig); PersistentObject::setObjectManager($this->em); $this->app['orm.em'] = $this->em; $this->setUpSchema(); }
/** * @param \Zend\Mvc\MvcEvent $e * @return void */ protected function setDoctrinePersistentObject(MvcEvent $e) { $em = $e->getApplication()->getServiceManager()->get('doctrine.entitymanager.orm_default'); PersistentObject::setObjectManager($em); return; }
public function testNoObjectManagerSet() { PersistentObject::setObjectManager(null); $child = new TestObject(); $this->setExpectedException('RuntimeException'); $child->setName("test"); }
/*** Application Translator ***/ $app['application.translator'] = $app->share(function () use($app) { return new Application\Translator($app); }); /*** Application Mailer ***/ $app['application.mailer'] = $app->share(function () use($app) { return new Application\Mailer($app); }); /***** Doctrine Database & Doctrine ORM *****/ if (isset($app['databaseOptions']) && is_array($app['databaseOptions'])) { $app->register(new Silex\Provider\DoctrineServiceProvider(), array('dbs.options' => $app['databaseOptions'])); $app->register(new Dflydev\Silex\Provider\DoctrineOrm\DoctrineOrmServiceProvider(), array('orm.em.options' => array('mappings' => array(array('type' => 'annotation', 'namespace' => 'Application\\Entity', 'path' => SRC_DIR . '/Application/Entity', 'use_simple_annotation_reader' => false))))); AnnotationRegistry::registerLoader(array(require VENDOR_DIR . '/autoload.php', 'loadClass')); $entityManagerConfig = Setup::createAnnotationMetadataConfiguration(array(APP_DIR . '/src/Application/Entity'), $app['debug']); $entityManager = EntityManager::create($app['dbs.options']['default'], $entityManagerConfig); PersistentObject::setObjectManager($entityManager); $app['orm.proxies_dir'] = STORAGE_DIR . '/cache/proxy'; $app['orm.manager_registry'] = $app->share(function ($app) { return new DoctrineManagerRegistry('manager_registry', array('default' => $app['orm.em']->getConnection()), array('default' => $app['orm.em'])); }); $app['form.extensions'] = $app->share($app->extend('form.extensions', function ($extensions) use($app) { $extensions[] = new DoctrineOrmExtension($app['orm.manager_registry']); return $extensions; })); } /***** Validator *****/ $app->register(new Silex\Provider\ValidatorServiceProvider()); $app['validator.mapping.mapping.file_path'] = APP_DIR . '/configs/validation.yml'; $app['validator.mapping.class_metadata_factory'] = $app->share(function ($app) { return new ClassMetadataFactory(new MappingYamlFileLoader(APP_DIR . '/configs/validation.yml')); });