/** * @param string $url * @param string $node * * @return Feed */ protected function getFeed($url, $node) { $transport = TransportFactory::createTransportFromUrl($url); $reader = new XmlReader(new FileResource($transport)); $reader->setNodeCallback($node); return new Feed($reader); }
private function loadOrigin1(ObjectManager $manager) { $origin = (new Origin())->setId(1)->setName('origin1')->setTitle('Origin 1')->setPriority(1); $feed = (new Feed())->setOrigin($origin)->setFrequency(1)->setPartial(false)->setType('itunes_podcast')->setOptions([])->setReaderType('xml')->setReaderOptions([])->setImporterType('default')->setImporterOptions([])->setDefaultValues([])->setTransportConfig(TransportFactory::createConfigFromFile($this->getFeedFile('podcast.xml'))); $manager->persist($origin); $manager->persist($feed); }
protected function addImportParts(Import $import) { $dispatcher = $this->createEventDispatcher(); $options = $this->getDefaultReaderOptions($import); $reader = $this->createImportReader($import, $dispatcher, $options); foreach ($reader->getResources() as $resource) { $transport = TransportFactory::createConfigFromTransport($resource->getTransport()); $part = $this->createImportPart($import, $transport); $this->eventDispatcher->dispatch(ImportEvents::PART_CREATED, new PartEvent($part)); } }
/** * @param array $transportConfig * @param string $destinationDir * @param EventDispatcherInterface $dispatcher * * @return TransportInterface */ protected function createTransport(array $transportConfig, $destinationDir, EventDispatcherInterface $dispatcher) { $transport = TransportFactory::createTransportFromConfig($transportConfig); $transport->setDestinationDir($destinationDir); $transport->setEventDispatcher($dispatcher); return $transport; }
/** * @param PartEvent $event */ public function onPartCreated(PartEvent $event) { $part = $event->getPart(); $this->output->writeln(sprintf('=> <comment>%d: %s</comment>', $part->getPosition(), (string) TransportFactory::createTransportFromConfig($part->getTransportConfig()))); }
/** * @param PartEvent $event */ public function onPartCreated(PartEvent $event) { $part = $event->getPart(); $this->logger->debug(sprintf('=> %d: %s', $part->getPosition(), (string) TransportFactory::createTransportFromConfig($part->getTransportConfig()))); }
/** * @param Feed $feed * @param string $fixtureName * @param EventDispatcherInterface $dispatcher * @param array $options * * @return ReaderInterface */ protected function createReader(Feed $feed, $fixtureName, EventDispatcherInterface $dispatcher, array $options = []) { $readerType = $this->getImportRegistry()->getReaderType($feed->getReaderType()); $refl = new \ReflectionClass(get_class($this)); $xml = sprintf('%s/fixtures/%s/%s.xml', dirname($refl->getFileName()), $feed->getType(), $fixtureName); $transportConfig = TransportFactory::createConfigFromFile($xml); $builder = new ReaderBuilder($dispatcher, sys_get_temp_dir() . '/' . $feed->getType()); return $builder->build($readerType, $transportConfig, $builder::RESOURCE_TYPE_MAIN, $options); }
/** * @param ImportPart $part * * @return bool */ protected function validate(ImportPart $part) { // validate that we have a valid transport config try { TransportFactory::createTransportFromConfig($part->getTransportConfig()); } catch (\RuntimeException $e) { $part->setError($e->getMessage()); return false; } return true; }