/** * Load data fixtures with the passed EntityManager * * @param ObjectManager $manager */ public function load(ObjectManager $manager) { $em = $this->container->get('doctrine.orm.entity_manager'); $parser = new LogParser(); foreach ($this->usersFiles as $file => $user) { $logs = $parser->parseFile(realpath($file), $user); array_map(function ($log) use($em) { $em->persist($log); }, $logs); } $em->flush(); }
protected function execute(InputInterface $input, OutputInterface $output) { $username = $input->getArgument('username'); $parser = new LogParser(); $em = $this->getContainer()->get('doctrine.orm.entity_manager'); $logDir = $this->getUserLogDir($username); if (false === scandir($logDir)) { throw new InvalidArgumentException(sprintf('"%s" directory does not exists', $logDir)); } foreach ($this->getFiles($logDir) as $file) { $lastLogStamp = $em->getRepository('AppBundle:Log')->getLastStamp($file); $logs = $parser->parseFile($file, $username, $lastLogStamp); array_map(function ($log) use($em) { $em->persist($log); }, $logs); } $em->flush(); }
public function testParseFile() { $parser = new LogParser(); $this->assertCount(3, $parser->parseFile(realpath(__DIR__ . '/test.log'), 'test')); $this->assertCount(2, $parser->parseFile(realpath(__DIR__ . '/test.log'), 'test', 1448118000)); }