/** * @param Import $import * @param array $targets * @param array $configuration * @param ResourceInterface $resource * @param ManagerInterface $manager * @return bool * @throws \HDNET\Importr\Exception\ReinitializeException */ public function process(Import $import, array $targets, array $configuration, ResourceInterface $resource, ManagerInterface $manager) { // Resourcen Object anhand der Datei auswählen if (!preg_match($resource->getFilepathExpression(), $import->getFilepath())) { return false; } $this->configuration->process($configuration, $manager, 'before'); // Resource "benutzen" $resource->parseResource(); // Basis Import Aktualsieren (DB) $import->setAmount($resource->getAmount()); $import->setStarttime(new \DateTime('now')); $this->importService->updateImport($import); // Durchlauf starten for ($pointer = $import->getPointer(); $pointer < $import->getAmount(); $pointer++) { $this->configuration->process($configuration, $manager, 'each'); $this->processOneLine($resource, $pointer, $targets, $import); if (($pointer + 1) % $manager->getUpdateInterval() == 0) { $this->importService->updateImport($import, $pointer + 1); } } $import->setEndtime(new \DateTime('now')); $this->importService->updateImport($import, $pointer); $this->configuration->process($configuration, $manager, 'after'); return true; }
/** * To rename a file from the importr you * have to use the "rename: 1" statement in * your configuration. The file will be * prefixed with the current (human readable) * timestamp. * * Caution: after this method, the file is moved * you should only use this in the before * configuration if you are fully aware of it! * * @param ManagerInterface $manager * @param Import $import * @return void */ public function execute(ManagerInterface $manager, Import $import) { $configuration = $import->getStrategy()->getConfiguration(); if (isset($configuration['after']['rename'])) { $oldFileName = $this->fileService->getFileAbsFileName($import->getFilepath()); $info = pathinfo($oldFileName); $newFileName = $info['dirname'] . DIRECTORY_SEPARATOR . date('YmdHis') . '_' . $info['basename']; rename($oldFileName, $newFileName); } }
/** * @param \HDNET\Importr\Domain\Model\Import $import * * @return array */ protected function initializeResourcesByImport(Import $import) { return $this->initializeResources($import->getStrategy(), $import->getFilepath()); }