private function cleanDB() { $this->mainlogrepo->getLoggableListener()->setEnabled(false); $this->doctrine->getConnection()->executeQuery('SET foreign_key_checks = 0'); $this->doctrine->getManager()->getFilters()->disable('softdeleteable'); foreach ($this->mainlogrepo->findAll() as $result) { $this->doctrine->getManager()->remove($result); } $this->doctrine->getManager()->flush(); $fixturesClasses = array(get_class(new Comment()), get_class(new RelatedArticle()), get_class(new User()), get_class(new Article())); foreach ($fixturesClasses as $fixturesClass) { $manager = $this->doctrine->getManagerForClass($fixturesClass); $repo = $manager->getRepository($fixturesClass); foreach ($repo->findAll() as $result) { $manager->remove($result); } $manager->flush(); $manager->clear(); } //make twice to be sure ??? foreach ($fixturesClasses as $fixturesClass) { $manager = $this->doctrine->getManagerForClass($fixturesClass); $repo = $manager->getRepository($fixturesClass); foreach ($repo->findAll() as $result) { $manager->remove($result); } $manager->flush(); $manager->clear(); } $this->doctrine->getManager()->getFilters()->enable('softdeleteable'); $this->doctrine->getConnection()->executeQuery('SET foreign_key_checks = 1'); $this->mainlogrepo->getLoggableListener()->setEnabled(true); }