Find fixtures classes in a given directory and load them.
public loadFromDirectory ( string $dir ) : array | ||
$dir | string | Directory to find fixture classes in. |
return | array | $fixtures Array of loaded fixture object instances. |
/** * @param InputInterface $input * @param OutputInterface $output * * @return void */ protected function execute(InputInterface $input, OutputInterface $output) { $loader = new Loader(); $executor = new ORMExecutor($this->em, new ORMPurger()); $loader->loadFromDirectory($this->mainDir); foreach ($this->dirs as $dir) { $loader->loadFromDirectory($dir); } $executor->execute($loader->getFixtures(), true); }
/** * @param InputInterface $input * @param OutputInterface $output * * @return void */ protected function execute(InputInterface $input, OutputInterface $output) { $loader = new Loader(); $loader->loadFromDirectory($this->mainDir); foreach ($this->dirs as $dir) { $loader->loadFromDirectory($dir); } foreach ($loader->getFixtures() as $fixtureName => $fixture) { $output->writeln($fixtureName); } }
/** * @param InputInterface $input * @param OutputInterface $output * * @return void */ protected function execute(InputInterface $input, OutputInterface $output) { $loader = new Loader(); $purger = new ORMPurger(); $purger->setPurgeMode(ORMPurger::PURGE_MODE_TRUNCATE); $executor = new ORMExecutor($this->em, $purger); $loader->loadFromDirectory($this->mainDir); foreach ($this->dirs as $dir) { $loader->loadFromDirectory($dir); } $executor->execute($loader->getFixtures()); }
/** * Loads fixtures that are marked as production fixtures. * * @param string $directory * * @return ProductionFixtureInterface[] */ public function loadProductionFixturesFromDirectory($directory) { $loader = new Loader(); return array_filter($loader->loadFromDirectory($directory), function ($fixture) { return $fixture instanceof ProductionFixtureInterface; }); }
/** * Initializes the database (once). * * @throws \Doctrine\DBAL\DBALException * @throws \Doctrine\ORM\ORMException * @throws \Doctrine\ORM\Tools\ToolsException */ protected function setUp() { if (null === static::$_conn) { $dbPath = __DIR__ . '/../../../db.sqlite'; if (file_exists($dbPath)) { unlink($dbPath); } $params = ['driver' => 'pdo_sqlite', 'path' => $dbPath]; static::$_conn = DriverManager::getConnection($params); static::$_conn->getConfiguration()->setSQLLogger(null); } if (null === static::$_em) { $paths = [__DIR__ . '/../../../../../src/Ekyna/Commerce/Bridge/Doctrine/ORM/Resources/mapping']; $isDevMode = true; $config = Setup::createXMLMetadataConfiguration($paths, $isDevMode); $em = EntityManager::create(static::$_conn, $config); $classes = []; foreach (static::$_classes as $class) { array_push($classes, $em->getClassMetadata($class)); } $schemaTool = new SchemaTool($em); $schemaTool->dropSchema($classes); $schemaTool->createSchema($classes); // Load fixtures $loader = new Loader(); $loader->loadFromDirectory(__DIR__ . '/../../../../../src/Ekyna/Commerce/Bridge/Doctrine/Fixtures'); $purger = new ORMPurger(); $executor = new ORMExecutor($em, $purger); $executor->execute($loader->getFixtures()); static::$_em = $em; } }
/** * Napolni podatke iz Fixtures */ public function populateTestAction() { $logger = function ($message) { echo $message . PHP_EOL; }; $em = $this->serviceLocator->get("\\Doctrine\\ORM\\EntityManager"); $config = new Config($this->serviceLocator->get('config')); $loader = new Loader(); $fixtures = isset($config->test_fixtures) ? $config->test_fixtures : []; $fixturename = $this->params('fixturename'); if (!empty($fixturename)) { foreach ($fixtures as $dir) { $loader->loadFromFile($dir . '/' . $fixturename . 'Fixture.php'); /** * če je dependent naj ne izvede nobenega */ if (count($loader->getFixtures()) > 1) { throw new \InvalidArgumentException('Loadanih več fixtur-jev -verjetno zaradi dependencies. Kot parameter možen le fixture brez odvisnosti.'); } } } else { foreach ($fixtures as $dir) { $loader->loadFromDirectory($dir); } } $executor = new ORMExecutor($em); $executor->setLogger($logger); $executor->execute($loader->getFixtures(), true); }
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')); }
/** * Executes the current command. * * This method is not abstract because you can use this class * as a concrete class. In this case, instead of defining the * execute() method, you set the code to execute by passing * a Closure to the setCode() method. * * @param InputInterface $input An InputInterface instance * @param OutputInterface $output An OutputInterface instance * * @return null|int null or 0 if everything went fine, or an error code * * @throws LogicException When this abstract method is not implemented * * @see setCode() */ protected function execute(InputInterface $input, OutputInterface $output) { /** @var QuestionHelper $helper */ $helper = $this->getHelper('question'); $question = new ConfirmationQuestion('All data in User table will be purged before inserting default data. Are you sure you want to continue?', false); if (!$helper->ask($input, $output, $question)) { return; } try { $loader = new Loader(); $loader->loadFromDirectory(__DIR__ . '/../fixtures'); $fixtures = $loader->getFixtures(); $purger = new ORMPurger($this->em); $executor = new ORMExecutor($this->em, $purger); $executor->setLogger(function ($message) use($output) { $output->writeln(sprintf(' <comment>></comment> <info>%s</info>', $message)); }); $executor->execute($fixtures); $output->writeln('Default users have been successfully loaded!'); return 0; } catch (\Exception $e) { $output->writeLn("That's bad. An Error occurred: <error>{$e->getMessage()}</error>"); return 1; } }
protected function execute(InputInterface $input, OutputInterface $output) { $em = $this->getEntityManager(); if ($input->isInteractive() && !$input->getOption('append')) { if (!$this->askConfirmation($input, $output, '<question>Careful, database will be purged. Do you want to continue y/N ?</question>', false)) { return; } } $app = $this->getApp(); $path = $app->getApplicationBase($app->getAppNamespace()) . '/DataFixture'; $loader = new DataFixturesLoader(); $loader->loadFromDirectory($path); $fixtures = $loader->getFixtures(); if (!$fixtures) { throw new InvalidArgumentException(sprintf('Could not find any fixtures to load in: %s', "\n\n- {$path}")); } foreach ($fixtures as $fixture) { if ($fixture instanceof ContainerAwareInterface) { $fixture->setContainer($this->getContainer()); } } $purger = new ORMPurger($em); if ($input->getOption('truncate-only')) { $purger->setPurgeMode(ORMPurger::PURGE_MODE_TRUNCATE); $purger->purge(); exit(0); } $purger->setPurgeMode($input->getOption('truncate') ? ORMPurger::PURGE_MODE_TRUNCATE : ORMPurger::PURGE_MODE_DELETE); $executor = new ORMExecutor($em, $purger); $executor->setLogger(function ($message) use($output) { $output->writeln(sprintf(' <comment>></comment> <info>%s</info>', $message)); }); $executor->execute($fixtures, $input->getOption('append')); }
/** * {@inheritDoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $app = $this->getApplication()->getApp(); $em = $app['em']; $dirOrFile = $input->getOption('fixtures'); if ($dirOrFile) { $paths = is_array($dirOrFile) ? $dirOrFile : array($dirOrFile); } else { $paths = isset($app['em.fixtures']) ? $app['em.fixtures'] : array(); } $loader = new Loader(); 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 ORMPurger($em); $purger->setPurgeMode($input->getOption('purge-with-truncate') ? ORMPurger::PURGE_MODE_TRUNCATE : ORMPurger::PURGE_MODE_DELETE); $executor = new ORMExecutor($em, $purger); $executor->setLogger(function ($message) use($output) { $output->writeln(sprintf(' <comment>></comment> <info>%s</info>', $message)); }); $executor->execute($fixtures, $input->getOption('append')); }
/** * @param $directories * @return mixed * @throws \InvalidArgumentException */ public function getFixtures($directories) { /** @var \SplFileInfo $directory */ foreach ($directories as $directory) { $this->loader->loadFromDirectory($directory->getRealPath()); } return $this->loader->getFixtures(); }
protected function loadFixtures() { $loader = new Loader(); $loader->loadFromDirectory(__DIR__ . '/Fixtures'); $purger = new ORMPurger(); $executor = new ORMExecutor($this->entityManager, $purger); $executor->execute($loader->getFixtures()); }
/** * @inheritdoc */ public function fire() { $loader = new Loader(); $this->info('Loading fixtures ...'); $loader->loadFromDirectory($this->option('path')); $fixtures = $loader->getFixtures(); $purger = new ORMPurger(); $executor = new ORMExecutor($this->getEntityManager(), $purger); $executor->execute($fixtures, $this->option('append')); $this->info('Fixtures loaded!'); }
public function testLoadFromDirectory() { $loader = new Loader(); $loader->addFixture($this->getMockBuilder(FixtureInterface::class)->setMockClassName('Mock1')->getMock()); $loader->addFixture($this->getMockBuilder(FixtureInterface::class)->setMockClassName('Mock2')->getMock()); $loader->addFixture($this->getMockBuilder(SharedFixtureInterface::class)->setMockClassName('Mock3')->getMock()); $this->assertCount(3, $loader->getFixtures()); $loader->loadFromDirectory(__DIR__ . '/TestFixtures'); $this->assertCount(7, $loader->getFixtures()); $this->assertTrue($loader->isTransient('TestFixtures\\NotAFixture')); $this->assertFalse($loader->isTransient('TestFixtures\\MyFixture1')); }
/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $path = $input->getArgument('path'); $app = $this->getApplication()->getWebApp(); $em = $app->get('core.entity.manager'); $loader = new Loader(); if ($path === null) { $output->writeln('Loading data fixtures from paths:'); $paths = $app->findPaths('Fixture'); foreach ($paths as $path) { $output->writeln($path); $loader->loadFromDirectory($path); } } else { $output->writeln(sprintf("Loading data fixtures from path: '%s'", $path)); $loader->loadFromDirectory($path); } $purger = new ORMPurger(); $executor = new ORMExecutor($em, $purger); $executor->execute($loader->getFixtures()); }
private function loadFixtures($append = true) { $fixtureLoader = new Loader(); $fixtureLoader->loadFromDirectory($this->getFixturePath()); if ($append) { $purger = null; } else { $purger = new ORMPurger(); } $executor = new ORMExecutor($this->entityManager, $purger); $executor->execute($fixtureLoader->getFixtures(), $append); }
public function testLoadFromDirectory() { $loader = new Loader(); $loader->addFixture($this->getMock('Doctrine\\Common\\DataFixtures\\FixtureInterface'), array(), array(), 'Mock1'); $loader->addFixture($this->getMock('Doctrine\\Common\\DataFixtures\\FixtureInterface', array(), array(), 'Mock2')); $loader->addFixture($this->getMock('Doctrine\\Common\\DataFixtures\\SharedFixtureInterface', array(), array(), 'Mock3')); $this->assertCount(3, $loader->getFixtures()); $loader->loadFromDirectory(__DIR__ . '/TestFixtures'); $this->assertCount(7, $loader->getFixtures()); $this->assertTrue($loader->isTransient('TestFixtures\\NotAFixture')); $this->assertFalse($loader->isTransient('TestFixtures\\MyFixture1')); }
/** * @param array $params */ public function resetAction() { echo "\n Clean and Importing... \n"; $loader = new Loader(); foreach ($this->dataFixtures as $path) { $loader->loadFromDirectory($path); } $purger = new ORMPurger(); $executor = new ORMExecutor($this->di->get('entityManager'), $purger); $executor->execute($loader->getFixtures()); echo "\n Done \n"; }
protected function execute(InputInterface $input, OutputInterface $output) { if (($directory = $input->getArgument('directory')) === NULL) { throw new \RuntimeException("Argument 'directory' is required in order to execute this command correctly."); } $entityManager = $this->getHelper('em')->getEntityManager(); $loader = new Loader(); $loader->loadFromDirectory($directory); $purger = new ORMPurger($entityManager); $executor = new ORMExecutor($entityManager, $purger); $executor->execute($loader->getFixtures()); }
public function loadFixturesAction() { $em = $this->getDoctrine()->getManager(); //Load the fixtures $loader = new Loader(); $loader->loadFromDirectory('/home/olivier/www/claroline/claroline6/claro6-samu/Claroline/vendor/cpasimusante/exoverride-bundle/CPASimUSante/ExoverrideBundle/DataFixtures/ORM'); //Execute the fixtures $purger = new ORMPurger(); $executor = new ORMExecutor($em, $purger); $executor->execute($loader->getFixtures(), true); //true to append }
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; } }
public function testLoader() { $loader = new Loader(); $loader->addFixture($this->getMock('Doctrine\Common\DataFixtures\FixtureInterface')); $loader->addFixture($this->getMock('Doctrine\Common\DataFixtures\FixtureInterface')); $this->assertEquals(2, count($loader->getFixtures())); $loader->loadFromDirectory(__DIR__.'/TestFixtures'); $this->assertEquals(4, count($loader->getFixtures())); $this->assertTrue($loader->isTransient('TestFixtures\NotAFixture')); $this->assertFalse($loader->isTransient('TestFixtures\MyFixture1')); }
/** * {@inheritdoc} */ public function execute(InputInterface $input, OutputInterface $output) { $path = $this->defaultPath; if ($input->hasArgument('path')) { $path = $input->getArgument('path'); } $loader = new Loader(); $loader->loadFromDirectory($path); $purger = new ORMPurger(); $executor = new ORMExecutor($this->entityManager, $purger); $executor->execute($loader->getFixtures()); $output->writeln('Fixture has been loaded into database'); }
public function execute(InputInterface $input, OutputInterface $output) { $loader = new Loader(); $purger = new ORMPurger(); if ($input->getOption('purge-with-truncate')) { $purger->setPurgeMode(self::PURGE_MODE_TRUNCATE); } $executor = new ORMExecutor($this->em, $purger); foreach ($this->paths as $key => $value) { $loader->loadFromDirectory($value); } $executor->execute($loader->getFixtures(), $input->getOption('append')); }
public function createDatabase() { // build test database $objectManager = $this->getApplication()->getServiceManager()->get('doctrine.entitymanager.orm_default'); $schemaTool = new \Doctrine\ORM\Tools\SchemaTool($objectManager); $schemaTool->createSchema($objectManager->getMetadataFactory()->getAllMetadata()); // Run fixtures $loader = new BaseLoader($objectManager); $purger = new ORMPurger(); $executor = new ORMExecutor($objectManager, $purger); $loader->loadFromDirectory(__DIR__ . '/../module/Db/src/Db/Fixture'); $executor->execute($loader->getFixtures(), true); $objectManager->clear(); }
public function loadAllFixtures() { $executor = new ORMExecutor($this->entityManager); $fixtureLoader = new DoctrineLoader(); foreach ($this->paths as $path) { $fixtureLoader->loadFromDirectory($path); } $fixtures = $fixtureLoader->getFixtures(); foreach ($fixtures as $fixture) { if ($fixture instanceof ServiceLocatorAwareInterface) { $fixture->setServiceLocator($this->serviceLocator); } } $executor->execute($fixtures, true); }
protected function execute(InputInterface $input, OutputInterface $output) { $helper = $this->getHelper('question'); $question = new ConfirmationQuestion('The database will be purged before loading. Continue?', false); if (!$helper->ask($input, $output, $question)) { return; } $app = $this->getApplication()->getContainer(); $loader = new Loader(); $dir = __DIR__ . '/../fixtures'; $fixtures = $loader->loadFromDirectory($dir); $purger = new ORMPurger(); $executor = new ORMExecutor($app['orm.em'], $purger); $executor->execute($fixtures, false); }
/** * Autoloads the fixtures passed in the static array $fixtures * * @param boolean $append Does it append fixtures * @param array $options The options * @param array $kernelOptions The options to pass to `WebTestCase::createKernel()` * * TODO: Add support for other Entity/Document managers * * @return void */ public function loadFixtures($append = false, array $options = array(), array $kernelOptions = array()) { if (null !== static::$kernel) { static::$kernel->shutdown(); } static::$kernel = static::createKernel($kernelOptions); static::$kernel->boot(); static::$dm = static::$kernel->getContainer()->get('doctrine.odm.mongodb.document_manager'); $loader = new Loader(); foreach ($this->getDataFixturesPaths() as $path) { $loader->loadFromDirectory($path); } $fixtures = $loader->getFixtures(); $purger = new \Doctrine\Common\DataFixtures\Purger\MongoDBPurger(static::$dm); $executor = new \Doctrine\Common\DataFixtures\Executor\MongoDBExecutor(static::$dm, $purger); $executor->execute($fixtures, $append); }
public function setUp() { // This is super slow /*$tool = new \Doctrine\ORM\Tools\SchemaTool($this->em); $tool->dropSchema($this->em->getMetadataFactory()->getAllMetadata()); $tool->createSchema($this->em->getMetadataFactory()->getAllMetadata());*/ /*$conn = $this->em->getConnection(); foreach ($conn->getSchemaManager()->listTableNames() as $tableName) $conn->executeUpdate("DELETE FROM $tableName;");*/ /*if ($fixture) $conn->exec(file_get_contents(dirname(__FILE__)."/fixtures/$fixture.sql"));*/ $loader = new Loader(); $loader->loadFromDirectory(APP_PATH . DIRECTORY_SEPARATOR . "fixtures"); $purger = new ORMPurger(); $executor = new ORMExecutor($this->em, $purger); $executor->execute($loader->getFixtures()); }
/** * Class Bootstrap * * Load fixtures before controllers tests * * @return void */ public static function setUpBeforeClass() { if (!empty(self::$application) && self::$application['doctrine_orm.em']->isOpen()) { return self::$application; } $app = (include __DIR__ . '/../../../../bootstrap.php'); /* @var $metadata array */ $metadata = $app['doctrine_orm.em']->getMetadataFactory()->getAllMetadata(); /* @var $tool SchemaTool */ $tool = new SchemaTool($app['doctrine_orm.em']); $tool->createSchema($metadata); /* @var $loader Loader */ $loader = new Loader(); $loader->loadFromDirectory(__DIR__ . '/../../../../fixtures'); /* @var $executor ORMExecutor */ $executor = new ORMExecutor($app['doctrine_orm.em']); $executor->execute($loader->getFixtures(), true); $app['logger']->addDebug('Fixtures loaded to ' . static::class); self::$application = $app; }