create() public static method

Factory method for the Annotation Driver
public static create ( array | string $paths = [], Doctrine\Common\Annotations\Reader $reader = null ) : AnnotationDriver
$paths array | string
$reader Doctrine\Common\Annotations\Reader
return AnnotationDriver
示例#1
0
 /**
  * Connect to MongoDb
  * @return DocumentManager
  */
 public function _initDb()
 {
     $container = $this;
     $this['documentManager'] = $this->share(function () use($container) {
         $dbConfigs = $container['configs']['database'];
         try {
             if (empty($dbConfigs['user'])) {
                 $connection_url = "mongodb://{$dbConfigs['host']}:{$dbConfigs['port']}/{$dbConfigs['name']}";
             } else {
                 $connection_url = "mongodb://{$dbConfigs['user']}:{$dbConfigs['passwd']}@{$dbConfigs['host']}:{$dbConfigs['port']}/{$dbConfigs['name']}";
             }
             AnnotationDriver::registerAnnotationClasses();
             $config = new Configuration();
             $config->setProxyDir(BIN_PATH . '/src/Blueridge/Documents/Proxies');
             $config->setProxyNamespace('Proxies');
             $config->setHydratorDir(BIN_PATH . '/src/Blueridge/Documents/Hydrators');
             $config->setHydratorNamespace('Hydrators');
             $config->setMetadataDriverImpl(AnnotationDriver::create(BIN_PATH . '/src/Blueridge/Documents'));
             $config->setDefaultDB($dbConfigs['name']);
             return DocumentManager::create(new Connection($connection_url), $config);
         } catch (Exception $e) {
             error_log($e->getMessage());
         }
     });
 }
示例#2
0
 /**
  * @return DocumentManager
  */
 protected function createDocumentManager($server)
 {
     AnnotationDriver::registerAnnotationClasses();
     $configuration = new Configuration();
     $configuration->setProxyDir(sys_get_temp_dir());
     $configuration->setProxyNamespace('Proxies');
     $configuration->setHydratorDir(sys_get_temp_dir());
     $configuration->setHydratorNamespace('Hydrators');
     $configuration->setMetadataDriverImpl(AnnotationDriver::create());
     return DocumentManager::create(new Connection($server), $configuration);
 }
示例#3
0
文件: Hive.php 项目: 100hz/hive
 /**
  * Creates the doctrine document mananger for working on the database
  *
  * @return DocumentManager
  */
 protected function createDocumentManager()
 {
     AnnotationDriver::registerAnnotationClasses();
     $configuration = new Configuration();
     $configuration->setProxyDir($this->configuration['doctrine']['proxyDir']);
     $configuration->setProxyNamespace($this->configuration['doctrine']['proxyNamespace']);
     $configuration->setHydratorDir($this->configuration['doctrine']['hydratorDir']);
     $configuration->setHydratorNamespace($this->configuration['doctrine']['hydratorNamespace']);
     $configuration->setMetadataDriverImpl(AnnotationDriver::create());
     return DocumentManager::create(new Connection($this->configuration['doctrine']['connection']['server']), $configuration);
 }
 /**
  * Get configuration of database 
  * @param String $dataBaseName
  * @return array
  */
 private function getConn()
 {
     AnnotationDriver::registerAnnotationClasses();
     $conn = (require self::$dir);
     $dataBase = (object) $conn['mongodb'];
     $config = new Configuration();
     $config->setProxyDir($dataBase->proxy['dir']);
     $config->setProxyNamespace($dataBase->proxy['namespace']);
     $config->setHydratorDir($dataBase->hydrator['dir']);
     $config->setHydratorNamespace($dataBase->hydrator['namespace']);
     $config->setMetadataDriverImpl(AnnotationDriver::create($dataBase->entityDir));
 }
 public function __construct()
 {
     AnnotationDriver::registerAnnotationClasses();
     $config = new Configuration();
     $config->setProxyDir(app_path() . '/storage/cache/Doctrine/Proxies');
     $config->setProxyNamespace('Proxies');
     $config->setHydratorDir(app_path() . '/storage/cache/Doctrine/Hydrators');
     $config->setHydratorNamespace('Hydrators');
     $config->setMetadataDriverImpl(AnnotationDriver::create(app_path() . '/app/Model/Entity'));
     $config->setDefaultDB(config('database.db_name'));
     parent::__construct(new Connection(\Config::get('database.host')), $config);
 }
 /**
  * @param array $params
  * @return mixed
  */
 public function produce(array $params = array())
 {
     $configuration = new Configuration();
     $configuration->setProxyDir($params['proxy_dir']);
     $configuration->setProxyNamespace($params['proxy_namespace']);
     $configuration->setHydratorDir($params['hydrator_dir']);
     $configuration->setHydratorNamespace($params['hydrator_namespace']);
     $configuration->setDefaultDB($params['default_db']);
     $configuration->setMetadataDriverImpl(AnnotationDriver::create($params['document_dir']));
     AnnotationDriver::registerAnnotationClasses();
     return $configuration;
 }
 public static function create(Connection $conn = null, Configuration $config = null, EventManager $eventManager = null)
 {
     if (is_null($config)) {
         $config = new \Doctrine\ODM\MongoDB\Configuration();
         $config->setProxyDir(__DIR__ . '/../Proxies');
         $config->setProxyNamespace('Doctrine\\Tests\\Proxies');
         $config->setHydratorDir(__DIR__ . '/../Hydrators');
         $config->setHydratorNamespace('Doctrine\\Tests\\Hydrators');
         $config->setMetadataDriverImpl(\Doctrine\ODM\MongoDB\Mapping\Driver\AnnotationDriver::create());
     }
     if (is_null($eventManager)) {
         $eventManager = new \Doctrine\Common\EventManager();
     }
     return new DocumentManagerMock($conn, $config, $eventManager);
 }
示例#8
0
 public function setUp()
 {
     $this->app()->bind(EntityManagerInterface::class, function () {
         $config = new Configuration();
         $config->setProxyDir(__DIR__ . '/Entities/Proxies');
         $config->setProxyNamespace('Tests\\Proxy');
         $config->setHydratorDir(__DIR__ . '/Entities/Hydrators');
         $config->setHydratorNamespace('Tests\\Hydrators');
         $config->setDefaultDB('test-base-api-php');
         $config->setMetadataDriverImpl(AnnotationDriver::create(__DIR__ . '/Entities/Stubs'));
         $connection = new Connection();
         AnnotationDriver::registerAnnotationClasses();
         return EntityManager::create($connection, $config);
     });
 }
 public function register(Application $app)
 {
     $app['mongo.dm'] = $app->share(function () {
         AnnotationDriver::registerAnnotationClasses();
         $config = new Configuration();
         $config->setDefaultDB('descartemap');
         $config->setProxyDir(ROOT . '/var/proxies');
         $config->setProxyNamespace('Proxies');
         $config->setHydratorDir(ROOT . '/var/hydrators');
         $config->setHydratorNamespace('Hydrators');
         $config->setMetadataDriverImpl(AnnotationDriver::create(ROOT . '/var/cache/'));
         $dm = DocumentManager::create(new Connection(), $config);
         return $dm;
     });
 }
 private function loadDoctrineMongoDBConfiguration(Application $app)
 {
     $app['doctrine.odm.mongodb.configuration'] = $app->share(function () use($app) {
         $config = new Configuration();
         $config->setMetadataCacheImpl($app['doctrine.odm.mongodb.metadata_cache']);
         if (isset($app['doctrine.odm.mongodb.connection_options']['database'])) {
             $config->setDefaultDB($app['doctrine.odm.mongodb.connection_options']['database']);
         }
         $chain = new MappingDriverChain();
         $usingAnnotations = false;
         foreach ((array) $app['doctrine.odm.mongodb.documents'] as $document) {
             switch ($document['type']) {
                 case 'annotation':
                     $driver = AnnotationDriver::create((array) $document['path']);
                     $chain->addDriver($driver, $document['namespace']);
                     $usingAnnotations = true;
                     break;
                 case 'yml':
                     $driver = new YamlDriver((array) $document['path'], '.yml');
                     $chain->addDriver($driver, $document['namespace']);
                     break;
                 case 'xml':
                     $driver = new XmlDriver((array) $document['path'], '.xml');
                     $chain->addDriver($driver, $document['namespace']);
                     break;
                 default:
                     throw new \InvalidArgumentException(sprintf('"%s" is not a recognized driver', $document['type']));
                     break;
             }
             // add namespace alias
             if (isset($document['alias'])) {
                 $config->addDocumentNamespace($document['alias'], $document['namespace']);
             }
         }
         if ($usingAnnotations) {
             AnnotationDriver::registerAnnotationClasses();
         }
         $config->setMetadataDriverImpl($chain);
         $config->setProxyDir($app['doctrine.odm.mongodb.proxies_dir']);
         $config->setProxyNamespace($app['doctrine.odm.mongodb.proxies_namespace']);
         $config->setAutoGenerateProxyClasses($app['doctrine.odm.mongodb.auto_generate_proxies']);
         $config->setHydratorDir($app['doctrine.odm.mongodb.hydrators_dir']);
         $config->setHydratorNamespace($app['doctrine.odm.mongodb.hydrators_namespace']);
         $config->setAutoGenerateHydratorClasses($app['doctrine.odm.mongodb.auto_generate_hydrators']);
         $config->setLoggerCallable($app['doctrine.odm.mongodb.logger_callable']);
         return $config;
     });
 }
 public function testHasGetMetadata_NamespaceSeperatorIsNotNormalized()
 {
     require_once __DIR__ . "/Documents/GlobalNamespaceDocument.php";
     $driver = AnnotationDriver::create(__DIR__ . '/Documents');
     $dm = $this->getMockDocumentManager($driver);
     $cmf = new ClassMetadataFactory();
     $cmf->setConfiguration($dm->getConfiguration());
     $cmf->setDocumentManager($dm);
     $m1 = $cmf->getMetadataFor("DoctrineGlobal_Article");
     $h1 = $cmf->hasMetadataFor("DoctrineGlobal_Article");
     $h2 = $cmf->hasMetadataFor("\\DoctrineGlobal_Article");
     $m2 = $cmf->getMetadataFor("\\DoctrineGlobal_Article");
     $this->assertNotSame($m1, $m2);
     $this->assertFalse($h2);
     $this->assertTrue($h1);
 }
 /**
  * setup mongo-odm and load fixtures
  *
  * @return void
  */
 public function setUp()
 {
     AnnotationDriver::registerAnnotationClasses();
     $config = new Configuration();
     $config->setHydratorDir('/tmp/hydrators');
     $config->setHydratorNamespace('Hydrators');
     $config->setProxyDir('/tmp/proxies');
     $config->setProxyNamespace('Proxies');
     $config->setMetadataDriverImpl(AnnotationDriver::create(__DIR__ . '/Documents/'));
     $dm = DocumentManager::create(new Connection(), $config);
     $loader = new Loader();
     $loader->addFixture(new MongoOdmFixtures());
     $executor = new MongoDBExecutor($dm, new MongoDBPurger());
     $executor->execute($loader->getFixtures());
     $this->builder = $dm->createQueryBuilder('Graviton\\Rql\\Documents\\Foo');
 }
示例#13
0
 /**
  * @param array $options
  */
 public function __construct(array $options = [])
 {
     AnnotationDriver::registerAnnotationClasses();
     $options = array_merge(['mongodb_url' => 'mongodb://localhost/crowi', 'password_seed' => 'this is default session secret', 'temporary_dir' => sys_get_temp_dir() . '/crowi', 'doctrine_configration' => null], $options);
     if (!$options['doctrine_configration'] instanceof Configuration) {
         $config = new Configuration();
         $config->setDefaultDB(trim(parse_url($options['mongodb_url'], PHP_URL_PATH), '/'));
         $config->setProxyDir($options['temporary_dir'] . '/Proxies');
         $config->setProxyNamespace('Proxies');
         $config->setHydratorDir($options['temporary_dir'] . '/Hydrators');
         $config->setHydratorNamespace('Hydrators');
         $config->setMetadataDriverImpl(AnnotationDriver::create(__DIR__ . '/Document'));
         $options['doctrine_configration'] = $config;
     }
     $this->dm = DocumentManager::create(new Connection($options['mongodb_url']), $options['doctrine_configration']);
 }
示例#14
0
/**
 * @return DocumentManager
 */
function getDM()
{
    static $dm;
    if (!isset($dm)) {
        $connection = new Connection();
        $config = new Configuration();
        $config->setProxyDir(__DIR__ . '/Proxies');
        $config->setProxyNamespace('Proxies');
        $config->setHydratorDir(__DIR__ . '/Hydrators');
        $config->setHydratorNamespace('Hydrators');
        $config->setDefaultDB('tw-react');
        $config->setMetadataDriverImpl(AnnotationDriver::create(__DIR__ . '/Documents'));
        AnnotationDriver::registerAnnotationClasses();
        $dm = DocumentManager::create($connection, $config);
    }
    return $dm;
}
 private function getDocumentManager()
 {
     if (!class_exists('Doctrine\\ODM\\MongoDB\\DocumentManager')) {
         $this->markTestSkipped('Missing doctrine/mongodb-odm');
     }
     $root = dirname(dirname(dirname(dirname(dirname(__DIR__)))));
     $config = new Configuration();
     $config->setProxyDir($root . '/generate/proxies');
     $config->setProxyNamespace('Proxies');
     $config->setHydratorDir($root . '/generate/hydrators');
     $config->setHydratorNamespace('Hydrators');
     $config->setMetadataDriverImpl(AnnotationDriver::create(dirname(__DIR__) . '/TestDocument'));
     AnnotationDriver::registerAnnotationClasses();
     $dm = DocumentManager::create(null, $config);
     if (!$dm->getConnection()->connect()) {
         $this->markTestSkipped('Unable to connect to MongoDB');
     }
     return $dm;
 }
示例#16
0
function DocumentManager()
{
    if (!file_exists($file = __DIR__ . '/vendor/autoload.php')) {
        throw new RuntimeException('Install dependencies to run this script.');
    }
    $loader = (require_once $file);
    $loader->add('Documents', __DIR__);
    $connection = new Connection();
    $config = new Configuration();
    $config->setProxyDir(__DIR__ . '/Proxies');
    $config->setProxyNamespace('Proxies');
    $config->setHydratorDir(__DIR__ . '/Hydrators');
    $config->setHydratorNamespace('Hydrators');
    $config->setDefaultDB('todos');
    $config->setMetadataDriverImpl(AnnotationDriver::create(__DIR__ . '/Documents'));
    AnnotationDriver::registerAnnotationClasses();
    $dm = DocumentManager::create($connection, $config);
    return $dm;
}
示例#17
0
文件: ODM.php 项目: qinyuguang/libyaf
 private function __construct($mongoConfig)
 {
     $this->logger = \Logkit\Logger::ins('mongo');
     AnnotationDriver::registerAnnotationClasses();
     //获取ODM配置
     $ODMConfig = \Yaf\Application::app()->getConfig()->ODM;
     if (!$ODMConfig) {
         throw new Exception('The ODM config not found.');
     }
     //连接mongodb
     $dsn = 'mongodb://' . $mongoConfig->host . ':' . $mongoConfig->port;
     $options = $mongoConfig->options->toArray();
     $connection = new Connection($dsn, $options);
     //配置ODM
     $config = new Configuration();
     $config->setProxyDir($ODMConfig->proxiesDir);
     $config->setProxyNamespace('Proxies');
     $config->setHydratorDir($ODMConfig->hydratorsDir);
     $config->setHydratorNamespace('Hydrators');
     $config->setMetadataDriverImpl(AnnotationDriver::create($ODMConfig->documentsDir));
     $this->ducumentManager = DocumentManager::create($connection, $config);
 }
示例#18
0
 private function initDm()
 {
     $config = new Configuration();
     $conn = new Connection($this->_config->getConfigData('mongo_server'));
     if (true === $this->_config->getConfigData('development_environment')) {
         $cache = new ArrayCache();
         $config->setAutoGenerateHydratorClasses(true);
         $config->setAutoGenerateProxyClasses(true);
     } else {
         $cache = new ApcCache(array('prefix' => $this->_app->getConfig()->getConfigData('app_name')));
         $config->setAutoGenerateHydratorClasses(false);
         $config->setAutoGenerateProxyClasses(false);
     }
     $config->setMetadataCacheImpl($cache);
     $config->setProxyDir(ROOT . DS . 'app' . DS . 'proxies');
     $config->setProxyNamespace('Proxies');
     $config->setHydratorDir(ROOT . DS . 'app' . DS . 'hydrators');
     $config->setHydratorNamespace('Hydrators');
     $config->setDefaultDB($this->_config->getConfigData('mongo_dbName'));
     $config->setMetadataDriverImpl(AnnotationDriver::create(ROOT . DS . 'app' . DS . 'models'));
     AnnotationDriver::registerAnnotationClasses();
     $this->_dm = DocumentManager::create($conn, $config);
     ServiceContainer::set()['dm'] = $this->_dm;
 }
示例#19
0
 private function getMockDocumentManager()
 {
     $config = new Configuration();
     $config->setMetadataDriverImpl(AnnotationDriver::create(__DIR__ . '/../../../../Documents'));
     $em = $this->getMockBuilder('Doctrine\\Common\\EventManager')->disableOriginalConstructor()->getMock();
     $dm = new DocumentManagerMock();
     $dm->eventManager = $em;
     $dm->config = $config;
     return $dm;
 }
use Doctrine\ODM\MongoDB\DocumentManager;
use Doctrine\ODM\MongoDB\Mapping\Driver\AnnotationDriver;
$container = $app->getContainer();
$container['view'] = function ($c) {
    $settings = $c->get('settings');
    $view = new \Slim\Views\Twig($settings['view']['template_path'], $settings['view']['twig']);
    $view->addExtension(new Slim\Views\TwigExtension($c->get('router'), $c->get('request')->getUri()));
    $view->addExtension(new Twig_Extension_Debug());
    return $view;
};
$container['logger'] = function ($c) {
    $settings = $c->get('settings');
    $logger = new \Monolog\Logger($settings['logger']['name']);
    $logger->pushProcessor(new \Monolog\Processor\UidProcessor());
    $logger->pushHandler(new \Monolog\Handler\StreamHandler($settings['logger']['path'], \Monolog\Logger::DEBUG));
    return $logger;
};
$container['dm'] = function ($c) {
    AnnotationDriver::registerAnnotationClasses();
    $config = new Configuration();
    $config->setProxyDir(__DIR__ . '/../cache/proxies');
    $config->setProxyNamespace('Proxies');
    $config->setHydratorDir(__DIR__ . '/../cache/hydrators');
    $config->setHydratorNamespace('Hydrators');
    $config->setMetadataDriverImpl(AnnotationDriver::create(__DIR__ . '/../src'));
    $dm = DocumentManager::create(new Connection(), $config);
    return $dm;
};
$container['Qmail\\Controller\\Website\\HomeController'] = function ($c) {
    return new Qmail\Controller\Website\HomeController($c);
};
示例#21
0
 protected function createMetadataDriverImpl()
 {
     return AnnotationDriver::create(__DIR__ . '/../../../../Documents');
 }
示例#22
0
文件: mongdb.php 项目: hieuit7/social
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
require_once "vendor/autoload.php";
use Doctrine\MongoDB\Connection;
use Doctrine\ODM\MongoDB\Configuration;
use Doctrine\ODM\MongoDB\DocumentManager;
use Doctrine\ODM\MongoDB\Mapping\Driver\AnnotationDriver;
if (!file_exists($file = __DIR__ . '/vendor/autoload.php')) {
    throw new RuntimeException('Install dependencies to run this script.');
}
//$loader = require_once $file;
//$loader->add('Documents', __DIR__);
//$mogo = new MongoClient(array(), $options);
$connection = new Connection("mongodb://127.0.0.1:27017/social");
$config = new Configuration($connection);
$config->setProxyDir(__DIR__ . '/Proxies');
$config->setProxyNamespace('Proxies');
$config->setHydratorDir(__DIR__ . '/Hydrators');
$config->setHydratorNamespace('Hydrators');
$config->setDefaultDB('social');
$config->setMetadataDriverImpl(AnnotationDriver::create('module/Application/src/Application/Entity/Mongo'));
AnnotationDriver::registerAnnotationClasses();
$dm = DocumentManager::create($connection, $config);
$helperSet = new \Symfony\Component\Console\Helper\HelperSet(array('dm' => new \Doctrine\ODM\MongoDB\Tools\Console\Helper\DocumentManagerHelper($dm)));
$app = new \Symfony\Component\Console\Application('Doctrine ODM MongoDB Command Line Interface');
$app->setHelperSet($helperSet);
$app->addCommands(array(new \Doctrine\ODM\MongoDB\Tools\Console\Command\GenerateDocumentsCommand(), new \Doctrine\ODM\MongoDB\Tools\Console\Command\GenerateHydratorsCommand(), new \Doctrine\ODM\MongoDB\Tools\Console\Command\GenerateProxiesCommand(), new \Doctrine\ODM\MongoDB\Tools\Console\Command\GenerateRepositoriesCommand(), new \Doctrine\ODM\MongoDB\Tools\Console\Command\QueryCommand(), new \Doctrine\ODM\MongoDB\Tools\Console\Command\ClearCache\MetadataCommand(), new \Doctrine\ODM\MongoDB\Tools\Console\Command\Schema\CreateCommand(), new \Doctrine\ODM\MongoDB\Tools\Console\Command\Schema\DropCommand(), new \Doctrine\ODM\MongoDB\Tools\Console\Command\Schema\UpdateCommand()));
$app->run();
示例#23
0
<?php

use Doctrine\Common\ClassLoader;
use Doctrine\MongoDB\Connection;
use Doctrine\ODM\MongoDB\Configuration;
use Doctrine\ODM\MongoDB\DocumentManager;
use Doctrine\ODM\MongoDB\Mapping\Driver\AnnotationDriver;
$file = __DIR__ . '/../../vendor/autoload.php';
if (!file_exists($file)) {
    throw new RuntimeException('Install dependencies to run the sandbox.');
}
require_once $file;
AnnotationDriver::registerAnnotationClasses();
$classLoader = new ClassLoader('Documents', __DIR__);
$classLoader->register();
$config = new Configuration();
$config->setProxyDir(__DIR__ . '/Proxies');
$config->setProxyNamespace('Proxies');
$config->setHydratorDir(__DIR__ . '/Hydrators');
$config->setHydratorNamespace('Hydrators');
$config->setDefaultDB('doctrine_odm_sandbox');
// $config->setLoggerCallable(function(array $log) { print_r($log); });
// $config->setMetadataCacheImpl(new Doctrine\Common\Cache\ApcCache());
$config->setMetadataDriverImpl(AnnotationDriver::create(__DIR__ . '/Documents'));
$dm = DocumentManager::create(new Connection(), $config);
 /**
  * Helper method to get metadata drivers
  * @param type $type
  * @param type $classpath
  * @return YamlDriver|XmlDriver
  */
 static function getMetadataDriver($type, $classpath)
 {
     switch ($type) {
         case "yaml":
             return new YamlDriver($classpath);
             break;
         case "xml":
             return new XmlDriver($classpath);
             break;
         default:
             AnnotationDriver::registerAnnotationClasses();
             return AnnotationDriver::create($classpath);
     }
 }