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));
 }
Ejemplo n.º 4
0
 /**
  * {@inheritdoc}
  */
 public function boot()
 {
     $registry = $this->container->get('doctrine');
     $em = $registry->getManager();
     $this->container->set('em', $em);
     PersistentObject::setObjectManager($em);
 }
Ejemplo n.º 5
0
 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);
 }
Ejemplo n.º 8
0
 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();
 }
Ejemplo n.º 10
0
 /**
  * @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;
 }
Ejemplo n.º 11
0
 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'));
});