loadFromDirectory() public method

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.
Beispiel #1
0
 /**
  * @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);
 }
Beispiel #2
0
 /**
  * @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);
     }
 }
Beispiel #3
0
 /**
  * @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;
     });
 }
Beispiel #5
0
 /**
  * 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;
     }
 }
Beispiel #6
0
 /**
  * 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'));
 }
Beispiel #8
0
 /**
  * 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!');
 }
Beispiel #14
0
 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'));
 }
Beispiel #15
0
 /**
  * {@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);
 }
Beispiel #17
0
 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;
     }
 }
Beispiel #22
0
    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');
 }
Beispiel #24
0
 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();
 }
Beispiel #26
0
 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);
 }
Beispiel #28
0
 /**
  * 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());
 }
Beispiel #30
0
 /**
  * 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;
 }