protected function execute(InputInterface $input, OutputInterface $output) { $emName = $input->getOption('em'); $emName = $emName ? $emName : 'default'; $emServiceName = sprintf('doctrine.orm.%s_entity_manager', $emName); $em = $this->container->get($emServiceName); $dirOrFile = $input->getOption('fixtures'); if ($dirOrFile) { $paths = is_array($dirOrFile) ? $dirOrFile : array($dirOrFile); } else { $paths = array(); $bundleDirs = $this->container->getKernelService()->getBundleDirs(); foreach ($this->container->getKernelService()->getBundles() as $bundle) { $tmp = dirname(str_replace('\\', '/', get_class($bundle))); $namespace = str_replace('/', '\\', dirname($tmp)); $class = basename($tmp); if (isset($bundleDirs[$namespace]) && is_dir($dir = $bundleDirs[$namespace] . '/' . $class . '/DataFixtures/ORM')) { $paths[] = $dir; } } } $loader = new \Doctrine\Common\DataFixtures\Loader(); foreach ($paths as $path) { $loader->loadFromDirectory($path); } $fixtures = $loader->getFixtures(); $purger = new \Doctrine\Common\DataFixtures\Purger\ORMPurger($em); $executor = new \Doctrine\Common\DataFixtures\Executor\ORMExecutor($em, $purger); $executor->setLogger(function ($message) use($output) { $output->writeln(sprintf(' <comment>></comment> <info>%s</info>', $message)); }); $executor->execute($fixtures, $input->getOption('append')); }
public function setUp() { $client = self::createClient(); $container = $client->getKernel()->getContainer(); $em = $container->get('doctrine')->getManager(); // Purge tables $purger = new \Doctrine\Common\DataFixtures\Purger\ORMPurger($em); $executor = new \Doctrine\Common\DataFixtures\Executor\ORMExecutor($em, $purger); $executor->purge(); // Load fixtures $loader = new \Doctrine\Common\DataFixtures\Loader(); $users = new \AppBundle\DataFixtures\ORM\LoadUserData(); $users->setContainer($container); $loader->addFixture($users); $projects = new \AppBundle\DataFixtures\ORM\LoadProjectData(); $projects->setContainer($container); $loader->addFixture($projects); $issues = new \AppBundle\DataFixtures\ORM\LoadIssueData(); $issues->setContainer($container); $loader->addFixture($issues); $activity = new \AppBundle\DataFixtures\ORM\LoadActivityData(); $activity->setContainer($container); $loader->addFixture($activity); $executor->execute($loader->getFixtures()); }
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'; } } $paths = array_filter($paths, 'is_dir'); $loader = new \Doctrine\Common\DataFixtures\Loader(); foreach ($paths as $path) { $loader->loadFromDirectory($path); } $fixtures = $loader->getFixtures(); $purger = new \Doctrine\Common\DataFixtures\Purger\MongoDBPurger($dm); $executor = new \Doctrine\Common\DataFixtures\Executor\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) { $emName = $input->getOption('em'); $emName = $emName ? $emName : 'default'; $emServiceName = sprintf('doctrine.orm.%s_entity_manager', $emName); $em = $this->container->get($emServiceName); $dirOrFile = $input->getOption('fixtures'); if ($dirOrFile) { $paths = is_array($dirOrFile) ? $dirOrFile : array($dirOrFile); } else { $paths = array(); foreach ($this->application->getKernel()->getBundles() as $bundle) { $paths[] = $bundle->getPath() . '/DataFixtures/ORM'; } } $loader = new \Doctrine\Common\DataFixtures\Loader(); foreach ($paths as $path) { if (is_dir($path)) { $loader->loadFromDirectory($path); } } $fixtures = $loader->getFixtures(); $purger = new \Doctrine\Common\DataFixtures\Purger\ORMPurger($em); $executor = new \Doctrine\Common\DataFixtures\Executor\ORMExecutor($em, $purger); $executor->setLogger(function ($message) use($output) { $output->writeln(sprintf(' <comment>></comment> <info>%s</info>', $message)); }); $executor->execute($fixtures, $input->getOption('append')); }
/** * executa as fixtures * * @return */ public static function execute() { $objLoader = new \Doctrine\Common\DataFixtures\Loader(); $objLoader->loadFromDirectory(FixtureLoader::ds_path); $objORMExecutor = new \Doctrine\Common\DataFixtures\Executor\ORMExecutor(Bootstrap::getServiceManager()->get('Doctrine\\ORM\\EntityManager'), self::getORMPurger()); $objORMExecutor->execute($objLoader->getFixtures()); }
protected function loadFixture($fixture) { $loader = new \Doctrine\Common\DataFixtures\Loader(); $loader->addFixture($fixture); $purger = new \Doctrine\Common\DataFixtures\Purger\ORMPurger($this->entityManager); $executor = new \Doctrine\Common\DataFixtures\Executor\ORMExecutor($this->entityManager, $purger); $executor->execute($loader->getFixtures()); }
protected function setUp() { $this->client = static::createClient(); $em = self::$kernel->getContainer()->get('doctrine')->getManager(); $root = self::$kernel->getContainer()->getParameter('kernel.root_dir'); $loader = new \Doctrine\Common\DataFixtures\Loader(); $loader->loadFromDirectory("{$root}/../src/VacancyBundle/DataFixtures/ORM"); $purger = new \Doctrine\Common\DataFixtures\Purger\ORMPurger($em); $executor = new \Doctrine\Common\DataFixtures\Executor\ORMExecutor($em, $purger); $executor->execute($loader->getFixtures()); }
/** * @param array $aFixtures * @throws \InvalidArgumentException * @return \BoilerAppTest\Dotrine\DoctrineUtilsTrait */ protected function addFixtures(array $aFixtures) { //Purge old fixtures if ($this->getDbCreated()) { $this->getORMPurger()->purge(); } else { $this->createDatabase(); } $oLoader = new \Doctrine\Common\DataFixtures\Loader(); foreach ($aFixtures as $oFixture) { if (is_string($oFixture)) { if (class_exists($oFixture)) { $oFixture = new $oFixture(); } elseif (file_exists($oFixture)) { require_once $oFixture; foreach (get_declared_classes() as $sClassName) { $oReflectionClass = new \ReflectionClass($sClassName); if ($oReflectionClass->getFileName() === $oFixture && !$oReflectionClass->isAbstract() && in_array('Doctrine\\Common\\DataFixtures\\FixtureInterface', class_implements($sClassName))) { $oFixture = new $sClassName(); break; } } } } if (!is_object($oFixture) || !$oFixture instanceof \Doctrine\Common\DataFixtures\FixtureInterface) { throw new \InvalidArgumentException(sprintf('Fixture is not valid : "%s"', is_scalar($oFixture) ? $oFixture : (is_object($oFixture) ? get_class($oFixture) : gettype($oFixture)))); } //Set service locator if needed if ($oFixture instanceof \Zend\ServiceManager\ServiceLocatorAwareInterface) { $oFixture->setServiceLocator($this->getServiceManager()); } $oLoader->addFixture($oFixture); } $this->getORMExecutor()->execute($oLoader->getFixtures()); return $this; }
/** * Loads an array of fixtures. * * @param string[] $fixtureClasses List of fixture class names * @param bool $append * @return $this * @throws \Exception */ public function loadFixtures(array $fixtureClasses, $append = false) { $loader = new \Doctrine\Common\DataFixtures\Loader(); foreach ($fixtureClasses as $fixtureClass) { if (!class_Exists($fixtureClass)) { throw new \Exception('Could not locate the fixture class ' . $fixtureClass . '. Ensure it is autoloadable'); } $fixture = new $fixtureClass(); $loader->addFixture($fixture); } $purger = new \Doctrine\Common\DataFixtures\Purger\ORMPurger(); $executor = new \Doctrine\Common\DataFixtures\Executor\ORMExecutor($this->getEntityManager(), $purger); $executor->setReferenceRepository($this->getFixtureReferenceRepo()); $executor->execute($loader->getFixtures(), $append); return $this; }
<?php $loader = (require __DIR__ . '/vendor/autoload.php'); \Doctrine\Common\Annotations\AnnotationRegistry::registerLoader(array($loader, 'loadClass')); $config = (require __DIR__ . '/app/config.php'); $app = new \Silex\Application($config['common']); require "public/bootstrap.php"; $loader = new \Doctrine\Common\DataFixtures\Loader(); $loader->addFixture(new \Jowy\P2bj\Fixtures\UserDataFixtures()); $purger = new \Doctrine\Common\DataFixtures\Purger\ORMPurger(); $executor = new \Doctrine\Common\DataFixtures\Executor\ORMExecutor($app['orm.em'], $purger); $executor->execute($loader->getFixtures());
/** * @param $folder */ public function appendFixtures($folder) { $loader = new \Doctrine\Common\DataFixtures\Loader(); $fixtures = $loader->loadFromDirectory($folder); foreach ($fixtures as $fixture) { $fixture->setContainer($this->getContainer()); } $purger = new \Doctrine\Common\DataFixtures\Purger\ORMPurger($this->getContainer()->get('doctrine.orm.entity_manager')); $executor = new \Doctrine\Common\DataFixtures\Executor\ORMExecutor($this->getContainer()->get('doctrine.orm.entity_manager'), $purger); $executor->execute($loader->getFixtures(), true); }