protected function execute(InputInterface $input, OutputInterface $output) { $dmName = $input->getOption('dm'); $dmName = $dmName ? $dmName : 'default'; $dmServiceName = sprintf('doctrine.odm.mongodb.%s_document_manager', $dmName); $dm = $this->container->get($dmServiceName); $dirOrFile = $input->getOption('fixtures'); if ($dirOrFile) { $paths = is_array($dirOrFile) ? $dirOrFile : array($dirOrFile); } else { $paths = array(); foreach ($this->container->get('kernel')->getBundles() as $bundle) { $paths[] = $bundle->getPath() . '/DataFixtures/MongoDB'; } } $loader = new DataFixturesLoader($this->container); foreach ($paths as $path) { if (is_dir($path)) { $loader->loadFromDirectory($path); } } $fixtures = $loader->getFixtures(); $purger = new MongoDBPurger($dm); $executor = new MongoDBExecutor($dm, $purger); $executor->setLogger(function ($message) use($output) { $output->writeln(sprintf(' <comment>></comment> <info>%s</info>', $message)); }); $executor->execute($fixtures, $input->getOption('append')); }
protected function execute(InputInterface $input, OutputInterface $output) { $dm = $this->getContainer()->get('doctrine_mongodb')->getManager($input->getOption('dm')); $dirOrFile = $input->getOption('fixtures'); if ($dirOrFile) { $paths = is_array($dirOrFile) ? $dirOrFile : array($dirOrFile); } else { $paths = $this->getContainer()->getParameter('doctrine_mongodb.odm.fixtures_dirs'); $paths = is_array($paths) ? $paths : array($paths); foreach ($this->getContainer()->get('kernel')->getBundles() as $bundle) { $paths[] = $bundle->getPath() . '/DataFixtures/MongoDB'; } } $loader = new ContainerAwareLoader($this->getContainer()); foreach ($paths as $path) { if (is_dir($path)) { $loader->loadFromDirectory($path); } } $fixtures = $loader->getFixtures(); if (!$fixtures) { throw new \InvalidArgumentException(sprintf('Could not find any fixtures to load in: %s', "\n\n- " . implode("\n- ", $paths))); } $purger = new MongoDBPurger($dm); $executor = new MongoDBExecutor($dm, $purger); $executor->setLogger(function ($message) use($output) { $output->writeln(sprintf(' <comment>></comment> <info>%s</info>', $message)); }); $executor->execute($fixtures, $input->getOption('append')); }
protected function execute(InputInterface $input, OutputInterface $output) { $dmName = $input->getOption('dm'); $dmName = $dmName ? $dmName : 'default'; $dmServiceName = sprintf('doctrine.odm.mongodb.%s_document_manager', $dmName); if (!$this->container->has($dmServiceName)) { throw new InvalidArgumentException(sprintf('Could not find a document manager configured with the name "%s". Check your ' . 'application configuration to configure your Doctrine document managers.', $dmName)); } $dm = $this->container->get($dmServiceName); $dirOrFile = $input->getOption('fixtures'); if ($dirOrFile) { $paths = is_array($dirOrFile) ? $dirOrFile : array($dirOrFile); } else { $paths = array(); foreach ($this->container->get('kernel')->getBundles() as $bundle) { $paths[] = $bundle->getPath() . '/DataFixtures/MongoDB'; } } $loader = new DataFixturesLoader($this->container); foreach ($paths as $path) { if (is_dir($path)) { $loader->loadFromDirectory($path); } } $fixtures = $loader->getFixtures(); if (!$fixtures) { throw new InvalidArgumentException(sprintf('Could not find any fixtures to load in: %s', "\n\n- " . implode("\n- ", $paths))); } $purger = new MongoDBPurger($dm); $executor = new MongoDBExecutor($dm, $purger); $executor->setLogger(function ($message) use($output) { $output->writeln(sprintf(' <comment>></comment> <info>%s</info>', $message)); }); $executor->execute($fixtures, $input->getOption('append')); }
/** * 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'); }
public function indexAction() { /** * @var $console \Zend\Console\Adapter\Posix * @var $entityManager \Doctrine\ODM\MongoDB\DocumentManager */ $console = $this->getServiceLocator()->get('console'); $fixtures_path = $this->getServiceLocator()->get('config'); $entityManager = $this->getServiceLocator()->get('doctrine.documentmanager.odm_default'); $request = $this->getRequest(); $loader = new Loader(); switch ($request) { case $request->getParam('load'): $console->writeLine('Loading fixtures', ColorInterface::RED); $purger = new MongoDBPurger(); $executor = new MongoDBExecutor($entityManager, $purger); foreach ($fixtures_path['zflabs-odm-fixture'] as $key => $path) { $loader->loadFromDirectory($path); $fixtures = $loader->getFixtures(); foreach ($fixtures as $value) { if ($request->getParam('purge')) { $executor->purge(); } $executor->load($entityManager, $value); $console->write(get_class($value), ColorInterface::BLUE); $console->writeLine('[OK]', ColorInterface::BLUE); } } break; case $request->getParam('check'): foreach ($fixtures_path['zflabs-odm-fixture'] as $key => $path) { $loader->loadFromDirectory($path); $fixtures = $loader->getFixtures(); foreach ($fixtures as $value) { $console->writeLine(get_class($value), ColorInterface::BLUE); } } break; } }
/** * Load test fixtures. * * @param ObjectManager $om */ protected function loadFixtures(ObjectManager $om) { if ($om instanceof \Doctrine\ORM\EntityManager) { $purger = new ORMPurger(); $executor = new ORMExecutor($om, $purger); } elseif ($om instanceof \Doctrine\ODM\MongoDB\DocumentManager) { $purger = new MongoDBPurger(); $executor = new MongoDBExecutor($om, $purger); } $fixtures = new TransUnitData(); $executor->execute(array($fixtures), false); }
protected function execute(InputInterface $input, OutputInterface $output) { $dm = $this->getContainer()->get('doctrine_mongodb')->getManager($input->getOption('dm')); $dirOrFile = $input->getOption('fixtures'); $bundles = $input->getOption('bundles'); if ($bundles && $dirOrFile) { throw new \InvalidArgumentException('Use only one option: --bundles or --fixtures.'); } if ($input->isInteractive() && !$input->getOption('append')) { $helper = $this->getHelper('question'); $question = new ConfirmationQuestion('Careful, database will be purged. Do you want to continue (y/N) ?', false); if (!$helper->ask($input, $output, $question)) { return; } } if ($dirOrFile) { $paths = is_array($dirOrFile) ? $dirOrFile : array($dirOrFile); } elseif ($bundles) { $kernel = $this->getContainer()->get('kernel'); foreach ($bundles as $bundle) { $paths[] = $kernel->getBundle($bundle)->getPath(); } } else { $paths = $this->getContainer()->getParameter('doctrine_mongodb.odm.fixtures_dirs'); $paths = is_array($paths) ? $paths : array($paths); foreach ($this->getContainer()->get('kernel')->getBundles() as $bundle) { $paths[] = $bundle->getPath() . '/DataFixtures/MongoDB'; } } $loaderClass = $this->getContainer()->getParameter('doctrine_mongodb.odm.fixture_loader'); $loader = new $loaderClass($this->getContainer()); foreach ($paths as $path) { if (is_dir($path)) { $loader->loadFromDirectory($path); } else { if (is_file($path)) { $loader->loadFromFile($path); } } } $fixtures = $loader->getFixtures(); if (!$fixtures) { throw new \InvalidArgumentException(sprintf('Could not find any fixtures to load in: %s', "\n\n- " . implode("\n- ", $paths))); } $purger = new MongoDBPurger($dm); $executor = new MongoDBExecutor($dm, $purger); $executor->setLogger(function ($message) use($output) { $output->writeln(sprintf(' <comment>></comment> <info>%s</info>', $message)); }); $executor->execute($fixtures, $input->getOption('append')); }
/** * DocumentFiextureを生成する * @param array $objects */ protected function loadDocumentFixtures($objects) { if (!is_array($objects)) { $objects = array($objects); } $loader = new Loader($this->getKernel()->getContainer()); $dm = $this->getDocumentManager(); foreach ($objects as $object) { if (class_exists($object)) { $loader->addFixture(new $object()); } } $fixtures = $loader->getFixtures(); $purger = new MongoDBPurger($dm); $executor = new MongoDBExecutor($dm, $purger); $executor->execute($fixtures); }
/** * Construct new fixtures loader instance. * * @param DocumentManager $manager DocumentManager instance used for persistence. * @param LoaderInterface $loader * @param MongoDBPurger $purger */ public function __construct(DocumentManager $manager, LoaderInterface $loader, MongoDBPurger $purger = null) { parent::__construct($manager, $purger); $this->loader = $loader; }