当前位置: 首页>>代码示例>>PHP>>正文


PHP Setup::createAnnotationMetadataConfiguration方法代码示例

本文整理汇总了PHP中Doctrine\ORM\Tools\Setup::createAnnotationMetadataConfiguration方法的典型用法代码示例。如果您正苦于以下问题:PHP Setup::createAnnotationMetadataConfiguration方法的具体用法?PHP Setup::createAnnotationMetadataConfiguration怎么用?PHP Setup::createAnnotationMetadataConfiguration使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Doctrine\ORM\Tools\Setup的用法示例。


在下文中一共展示了Setup::createAnnotationMetadataConfiguration方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: testExtractors

 /**
  * @dataProvider extractorsDataProvider
  *
  * @param $class
  * @param $extractor
  * @param $properties
  */
 public function testExtractors($class, $extractor, $properties)
 {
     $config = Setup::createAnnotationMetadataConfiguration([__DIR__], true);
     $entityManager = EntityManager::create(['driver' => 'pdo_sqlite'], $config);
     /** @var TypeExtractorInterface $extractor */
     $extractor = new $extractor($entityManager->getMetadataFactory());
     $propertyInfo = new PropertyInfo([$extractor], []);
     foreach ($properties as $property) {
         $reflectionProperty = new \ReflectionProperty($class, $property['name']);
         $expectedType = $property['type'];
         /** @var Type[] $actualTypes */
         $actualTypes = $propertyInfo->getTypes($reflectionProperty);
         $actualType = $actualTypes[0];
         if ($expectedType !== null) {
             $this->assertEquals($expectedType, $actualType->getType());
             $this->assertEquals($property['class'], $actualType->getClass());
             $this->assertEquals($property['collection'], $actualType->isCollection());
             if (isset($property['collectionType'])) {
                 $actualCollectionType = $actualType->getCollectionType();
                 $this->assertEquals($property['collectionType']['type'], $actualCollectionType->getType());
                 $this->assertEquals($property['collectionType']['class'], $actualCollectionType->getClass());
                 $this->assertEquals($property['collectionType']['collection'], $actualCollectionType->isCollection());
             }
         } else {
             $this->assertNull($actualType);
         }
     }
 }
开发者ID:mihai-stancu,项目名称:php-property-info,代码行数:35,代码来源:DoctrineExtractorTest.php

示例2: getEntityManager

 /**
  * @return EntityManager
  * @throws ServiceNotRegisteredException
  */
 public static function getEntityManager()
 {
     if (ServiceLocator::$entityManager === null) {
         ServiceLocator::$entityManager = EntityManager::create(['driver' => Config::DB_DRIVER, 'host' => Config::DB_HOST, 'dbname' => Config::DB_NAME, 'user' => Config::DB_USER, 'password' => Config::DB_PASS], Setup::createAnnotationMetadataConfiguration([__DIR__ . '/../Models'], Config::DEV_MODE, null, null, false));
     }
     return ServiceLocator::checkAndReturn(ServiceLocator::$entityManager);
 }
开发者ID:kairet,项目名称:kairet-cms,代码行数:11,代码来源:ServiceLocator.php

示例3: __construct

 public function __construct()
 {
     try {
         $conn = array("driver" => "pdo_mysql", "host" => "localhost", "port" => "3306", "user" => "root", "password" => "", "dbname" => "controle_gastos");
         /*
         var_dump(__DIR__);
         var_dump(PP);
         exit;
         */
         $loader = new \Doctrine\Common\ClassLoader("Entities", __DIR__);
         $loader->register();
         $config = Setup::createAnnotationMetadataConfiguration(array("../../" . __DIR__ . "/app/models"), false);
         $em = EntityManager::create($conn, $config);
         $cmf = new DisconnectedClassMetadataFactory();
         $cmf->setEntityManager($em);
         $em->getConnection()->getDatabasePlatform()->registerDoctrineTypeMapping('set', 'string');
         $em->getConnection()->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string');
         $driver = new DatabaseDriver($em->getConnection()->getSchemaManager());
         $em->getConfiguration()->setMetadataDriverImpl($driver);
         $metadata = $cmf->getAllMetadata();
         $generator = new EntityGenerator();
         $generator->setGenerateAnnotations(true);
         $generator->setGenerateStubMethods(true);
         $generator->setRegenerateEntityIfExists(true);
         $generator->setUpdateEntityIfExists(true);
         $generator->generate($metadata, "../../" . __DIR__ . "/app/models");
     } catch (\Exception $e) {
         throw $e;
     }
 }
开发者ID:josecarlosgdacosta,项目名称:zframework2,代码行数:30,代码来源:Connection.php

示例4: register

 public function register(Application $app)
 {
     $paths = array(realpath($app['config']['doctrine']['paths']['entity']));
     $isDevMode = $app['config']['doctrine']['devMode'];
     $config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode, null, null, false);
     $app['doctrine'] = EntityManager::create($app['config']['doctrine']['db'], $config);
 }
开发者ID:joeyrivera,项目名称:phpug-silex-intro,代码行数:7,代码来源:Doctrine.php

示例5: createService

 public function createService(ServiceLocatorInterface $serviceLocator)
 {
     $config = $serviceLocator->get('config');
     // The parameters in Doctrine 2 and ZF2 are slightly different.
     // Below is an example how we can reuse the db settings
     $doctrineDbConfig = (array) $config['db'];
     $doctrineDbConfig['driver'] = strtolower($doctrineDbConfig['driver']);
     if (!isset($doctrineDbConfig['dbname'])) {
         $doctrineDbConfig['dbname'] = $doctrineDbConfig['database'];
     }
     if (!isset($doctrineDbConfig['host'])) {
         $doctrineDbConfig['host'] = $doctrineDbConfig['hostname'];
     }
     if (!isset($doctrineDbConfig['user'])) {
         $doctrineDbConfig['user'] = $doctrineDbConfig['username'];
     }
     $doctrineConfig = Setup::createAnnotationMetadataConfiguration($config['doctrine']['entity_path'], true);
     $entityManager = DoctrineEntityManager::create($doctrineDbConfig, $doctrineConfig);
     if (isset($config['doctrine']['initializers'])) {
         $eventManager = $entityManager->getEventManager();
         foreach ($config['doctrine']['initializers'] as $initializer) {
             $eventClass = new DoctrineEvent(new $initializer(), $serviceLocator);
             $eventManager->addEventListener(\Doctrine\ORM\Events::postLoad, $eventClass);
         }
     }
     if ($serviceLocator->has('doctrine-profiler')) {
         $profiler = $serviceLocator->get('doctrine-profiler');
         $entityManager->getConfiguration()->setSQLLogger($profiler);
     }
     return $entityManager;
 }
开发者ID:gsokolowski,项目名称:learnzf2,代码行数:31,代码来源:EntityManager.php

示例6: setUp

 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);
 }
开发者ID:epoplive,项目名称:EasyBib_DoctrineTypes,代码行数:29,代码来源:HstoreTestCase.php

示例7: __construct

 /**
  * @param array $database
  * @throws \Exception
  */
 public function __construct($database = [])
 {
     $this->db = $database;
     foreach ($this->db as $key => $db) {
         $this->allDb[$key] = function () use($db) {
             $db['dev'] = isset($db['dev']) && $db['dev'] ? true : false;
             if (isset($db['db_url'])) {
                 $dbParams = array('url' => $db['db_url']);
             } else {
                 if (!isset($db['driver']) || !isset($db['user']) || !isset($db['pass']) || !isset($db['host']) || !isset($db['db'])) {
                     throw new \Exception('Missing arguments for doctrine constructor');
                 }
                 $dbParams = array('driver' => $this->getDriver($db['driver']), 'user' => $db['user'], 'password' => $db['pass'], 'host' => $db['host'], 'dbname' => $db['db'], 'charset' => isset($db['charset']) ? $db['charset'] : 'utf8');
             }
             $evm = new EventManager();
             if (isset($db['prefix'])) {
                 $tablePrefix = new TablePrefix($db['prefix']);
                 $evm->addEventListener(Events::loadClassMetadata, $tablePrefix);
             }
             $config = Setup::createAnnotationMetadataConfiguration($db['path'], $db['dev']);
             if (!$db['dev']) {
                 $config->setQueryCacheImpl($db['cache']);
                 $config->setResultCacheImpl($db['cache']);
                 $config->setMetadataCacheImpl($db['cache']);
             }
             if (isset($db['functions']) && !empty($db['functions'])) {
                 $config->setCustomDatetimeFunctions($db['functions']['customDatetimeFunctions']);
                 $config->setCustomNumericFunctions($db['functions']['customNumericFunctions']);
                 $config->setCustomStringFunctions($db['functions']['customStringFunctions']);
             }
             return EntityManager::create($dbParams, $config, $evm);
         };
     }
 }
开发者ID:jetfirephp,项目名称:db,代码行数:38,代码来源:DoctrineConstructor.php

示例8: buildEntityManagers

 /**
  * @param ApplicationInterface $app
  *
  * @throws \Doctrine\ORM\ORMException
  * @throws \ObjectivePHP\Primitives\Exception
  * @throws \ObjectivePHP\ServicesFactory\Exception
  */
 public function buildEntityManagers(ApplicationInterface $app)
 {
     $entityManagers = $app->getConfig()->subset(Config\EntityManager::class);
     foreach ($entityManagers as $connection => $params) {
         if (isset($params['db'])) {
             $params = $params['db'];
         }
         // normalize if needed
         $entitiesPaths = $params['entities.locations'];
         Collection::cast($entitiesPaths)->each(function (&$path) {
             if (strpos($path, '/') !== 0) {
                 $path = getcwd() . '/' . $path;
             }
         });
         // TODO: handle isDev depending on app config
         $emConfig = Setup::createAnnotationMetadataConfiguration((array) $entitiesPaths, true);
         $emConfig->setNamingStrategy(new UnderscoreNamingStrategy());
         $em = EntityManager::create($params, $emConfig);
         if (!empty($params['mapping_types']) && is_array($params['mapping_types'])) {
             $platform = $em->getConnection()->getDatabasePlatform();
             foreach ($params['mapping_types'] as $type => $mapping) {
                 if (!Type::hasType($type) && class_exists($mapping)) {
                     Type::addType($type, $mapping);
                     $mapping = $type;
                 }
                 $platform->registerDoctrineTypeMapping($type, $mapping);
             }
         }
         // register entity manager as a service
         $emServiceId = 'doctrine.em.' . Str::cast($connection)->lower();
         $app->getServicesFactory()->registerService(['id' => $emServiceId, 'instance' => $em]);
         $app->getServicesFactory()->registerService(['id' => 'db.connection.' . $connection, 'instance' => $em->getConnection()->getWrappedConnection()]);
     }
 }
开发者ID:objective-php,项目名称:doctrine-package,代码行数:41,代码来源:DoctrinePackage.php

示例9: init

 /**
  * @return void
  */
 public function init()
 {
     if ($this->isInitialized()) {
         return;
     }
     $context = $this->getApplication()->getContext();
     $this->serviceConfig = $this->getServiceConfig();
     $this->config = $this->getServiceConfig();
     $this->eventManager = new EventManager();
     $conn = $context->pluck('phpcrystal.phpcrystal.database')->toArray();
     // database connection config
     $isDevEnv = $context->getEnv() == 'dev';
     $this->ormConfig = Setup::createAnnotationMetadataConfiguration([], $isDevEnv);
     $this->ormConfig = new Configuration();
     $cache = new ArrayCache();
     $this->ormConfig->setMetadataCacheImpl($cache);
     $driverImpl = $this->ormConfig->newDefaultAnnotationDriver([], false);
     $this->ormConfig->setMetadataDriverImpl($driverImpl);
     $this->ormConfig->setQueryCacheImpl($cache);
     $this->ormConfig->setQueryCacheImpl($cache);
     if (null != ($entityNSArray = $this->config->get('entityNamespaces'))) {
         $this->ormConfig->setEntityNamespaces($entityNSArray);
     }
     // Proxy configuration
     $this->ormConfig->setProxyDir($this->config->get('proxyDir'));
     $this->ormConfig->setProxyNamespace($this->config->get('proxyNamespace'));
     $this->entityManager = $this->createEntityManager($conn, $this->ormConfig, $this->eventManager);
     $this->isInitialized = true;
     return $this;
 }
开发者ID:phpcrystal,项目名称:phpcrystal,代码行数:33,代码来源:Doctrine.php

示例10: setUp

 /**
  * {@inheritdoc}
  */
 protected function setUp()
 {
     parent::setUp();
     if (!GeometryEngineRegistry::has()) {
         $this->markTestSkipped('This test requires a connection to a database.');
     }
     $engine = GeometryEngineRegistry::get();
     if (!$engine instanceof PDOEngine) {
         $this->markTestSkipped('This test currently only works with a PDO connection.');
     }
     $this->platform = $this->_conn->getDatabasePlatform();
     $this->platform->registerDoctrineTypeMapping('geometry', 'binary');
     $this->platform->registerDoctrineTypeMapping('linestring', 'binary');
     $this->platform->registerDoctrineTypeMapping('multilinestring', 'binary');
     $this->platform->registerDoctrineTypeMapping('multipoint', 'binary');
     $this->platform->registerDoctrineTypeMapping('multipolygon', 'binary');
     $this->platform->registerDoctrineTypeMapping('point', 'binary');
     $this->platform->registerDoctrineTypeMapping('polygon', 'binary');
     switch ($this->platform->getName()) {
         case 'postgresql':
             $this->_conn->executeQuery('CREATE EXTENSION IF NOT EXISTS postgis;');
             break;
     }
     $this->fixtureLoader = new Loader();
     $config = Setup::createAnnotationMetadataConfiguration([__DIR__ . '/Fixtures'], false);
     $config->addCustomNumericFunction('EarthDistance', EarthDistanceFunction::class);
     $this->em = EntityManager::create($this->_conn, $config, $this->platform->getEventManager());
     $this->schemaTool = new SchemaTool($this->em);
     $this->schemaTool->updateSchema([$this->em->getClassMetadata(Fixtures\GeometryEntity::class), $this->em->getClassMetadata(Fixtures\LineStringEntity::class), $this->em->getClassMetadata(Fixtures\MultiLineStringEntity::class), $this->em->getClassMetadata(Fixtures\MultiPointEntity::class), $this->em->getClassMetadata(Fixtures\MultiPolygonEntity::class), $this->em->getClassMetadata(Fixtures\PointEntity::class), $this->em->getClassMetadata(Fixtures\PolygonEntity::class)]);
     $purger = new ORMPurger();
     $this->ormExecutor = new ORMExecutor($this->em, $purger);
 }
开发者ID:brick,项目名称:geo,代码行数:35,代码来源:FunctionalTestCase.php

示例11: registerEntityManager

 private function registerEntityManager()
 {
     $this->app->singleton('DoctrineOrm', function ($app) {
         $config = $app['config']['doctrine::doctrine'];
         $metadata = Setup::createAnnotationMetadataConfiguration($config['metadata'], $app['config']['app.debug'], $config['proxy']['directory'], $app[CacheManager::class]->getCache($config['cache_provider']), $config['simple_annotations']);
         $metadata->addFilter('trashed', TrashedFilter::class);
         $metadata->setAutoGenerateProxyClasses($config['proxy']['auto_generate']);
         $metadata->setDefaultRepositoryClassName($config['repository']);
         $metadata->setSQLLogger($config['logger']);
         $metadata->setNamingStrategy($app->make(LaravelNamingStrategy::class));
         if (isset($config['proxy']['namespace'])) {
             $metadata->setProxyNamespace($config['proxy']['namespace']);
         }
         $eventManager = new EventManager();
         $connection_config = $this->mapLaravelToDoctrineConfig($app['config']);
         //load prefix listener
         if (isset($connection_config['prefix'])) {
             $tablePrefix = new TablePrefix($connection_config['prefix']);
             $eventManager->addEventListener(Events::loadClassMetadata, $tablePrefix);
         }
         $eventManager->addEventListener(Events::onFlush, new SoftDeletableListener());
         $entityManager = EntityManager::create($connection_config, $metadata, $eventManager);
         $entityManager->getFilters()->enable('trashed');
         return $entityManager;
     });
     //$this->app->alias('DoctrineOrm', EntityManagerInterface::class);
 }
开发者ID:uedehua,项目名称:laravel5-doctrine,代码行数:27,代码来源:DoctrineOrmProvider.php

示例12: initDoctrine

 private static function initDoctrine()
 {
     App::$inst->container->singleton('DoctrineConfig', function () {
         $paths = array(APPLICATION_PATH . "/models/Entity");
         $isDevMode = false;
         $config = \Doctrine\ORM\Tools\Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);
         if (isset(App::$inst->config['resources']['doctrine']['proxiesPath'])) {
             $config->setProxyDir(App::$inst->config['resources']['doctrine']['proxiesPath']);
         } elseif (IS_SAVVIS) {
             $config->setProxyDir(sprintf('/tmp/%s/proxies', App::$inst->config['resources']['doctrine']['dbal']['connection']['parameters']['dbname']));
         } else {
             $config->setProxyDir(APPLICATION_PATH . '/tmp/proxies');
         }
         $config->setProxyNamespace('Application\\tmp\\proxies');
         $config->setAutoGenerateProxyClasses(true);
         return $config;
     });
     App::$inst->container->singleton('em', function () {
         $config = App::$inst->DoctrineConfig;
         $entityManager = \Doctrine\ORM\EntityManager::create(App::$inst->config['resources']['doctrine']['dbal']['connection']['parameters'], $config);
         return $entityManager;
     });
     App::$inst->cache = Bootstrap::initDoctrineCache(App::$inst->DoctrineConfig);
     //init doctrine cache
 }
开发者ID:konstantin-pr,项目名称:Ses,代码行数:25,代码来源:Bootstrap.php

示例13: boot

 /**
  * @throws \Doctrine\ORM\ORMException
  */
 public function boot()
 {
     $this->serializer = SerializerBuilder::create()->setDebug($this->devMode)->build();
     $this->entityFolder->create();
     AnnotationRegistry::registerAutoloadNamespace('JMS\\Serializer\\Annotation', __DIR__ . '/../../../../vendor/jms/serializer/src');
     $proxyDoctrineFolder = new Folder(sys_get_temp_dir() . '/doctrine');
     $config = Setup::createAnnotationMetadataConfiguration([$this->entityFolder->absolute()], $this->isDevMode(), $proxyDoctrineFolder->absolute());
     if ($this->cache !== null) {
         $config->setQueryCacheImpl($this->getCache());
         $config->setResultCacheImpl($this->getCache());
     }
     $this->entityManager = $this->createEntityManager($config);
     $debugStack = new DebugStack();
     $this->entityManager->getConnection()->getConfiguration()->setSQLLogger($debugStack);
     if ($this->getFileCreation()->getContent() == 1) {
         return;
     }
     if ($proxyDoctrineFolder->isFolder()) {
         $proxyDoctrineFolder->removeFiles();
     }
     $tool = new SchemaTool($this->entityManager);
     $metadatas = $this->entityManager->getMetadataFactory()->getAllMetadata();
     $proxyDoctrineFolder->create();
     $this->entityManager->getProxyFactory()->generateProxyClasses($metadatas, $proxyDoctrineFolder->absolute());
     if ($this->cloudFoundryBoot->isInCloudFoundry()) {
         $tool->updateSchema($metadatas);
     } else {
         $tool->createSchema($metadatas);
     }
     $this->getFileCreation()->setContent(1);
 }
开发者ID:cloudfoundry-community,项目名称:php-cf-service-broker,代码行数:34,代码来源:DoctrineBoot.php

示例14: init

 /**
  * Executa as configurações iniciais e prepara o a entidade responsáveç
  * da biblioteca escolhida para ORM.
  */
 public function init()
 {
     $config = Config::getInstance();
     $paths = [SYS_ROOT . 'App' . DS . 'Models' . DS];
     $dev_mode = $config->get('database.debug');
     $conn_params = $this->loadConfiguration();
     $doctrine_config = Setup::createAnnotationMetadataConfiguration($paths, $dev_mode);
     if ($config->get('cache.cache')) {
         try {
             $cache = Cache::getInstance();
             if ($cache instanceof Cache) {
                 $doctrine_config->setResultCacheImpl($cache->getDriver());
             }
         } catch (\Exception $e) {
             $error = new Error();
             $error->log($e);
         }
     }
     $proxy_dir = SYS_ROOT . 'App' . DS . 'Models' . DS . 'Proxies';
     if (!is_dir($proxy_dir)) {
         if (mkdir($proxy_dir)) {
             $doctrine_config->setProxyDir($proxy_dir);
         }
     }
     $prefix = $config->get('database.connection.table_prefix');
     if ($prefix != '') {
         $evm = new EventManager();
         $table_prefix = new DoctrineTablePrefix($prefix);
         $evm->addEventListener(Events::loadClassMetadata, $table_prefix);
         $this->entityManager = EntityManager::create($conn_params, $doctrine_config, $evm);
     } else {
         $this->entityManager = EntityManager::create($conn_params, $doctrine_config);
     }
 }
开发者ID:anna-framework,项目名称:anna,代码行数:38,代码来源:DoctrineAdapter.php

示例15: getEntityManager

 /**
  * @return EntityManager
  */
 public function getEntityManager()
 {
     if (!$this->entityManager instanceof EntityManager) {
         $this->entityManager = EntityManager::create($this->getConfiguration()->get('database'), Setup::createAnnotationMetadataConfiguration([$this->rootPath . '/src/Classes/Entities/', __DIR__ . '/Domain/Entities/'], true));
     }
     return $this->entityManager;
 }
开发者ID:smichaelsen,项目名称:php-salad-bowl,代码行数:10,代码来源:Bowl.php


注:本文中的Doctrine\ORM\Tools\Setup::createAnnotationMetadataConfiguration方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。