19declare(strict_types=1);
27use Psr\Log\LoggerInterface as Logger;
41 protected readonly ExportHandler $export_handler;
52 $context = $this->context_holder->get();
54 if ($context->getPhase()->value < ExportPhase::Prepare->value) {
56 $this->exporter->prepare($context);
59 if ($context->getPhase()->value < ExportPhase::Process->value) {
61 $this->exporter->process($context);
64 $this->context_holder->set($context);
78 $context->setWriter($this->exp->getExportWriter());
80 $this->exporter->write($context);
83 $this->context_holder->clear();
89 string $target_release,
94 $object_ids = array_slice($object_ids, 0, 1);
95 $target = $this->export_handler->target()->handler()
97 ->withTargetRelease($target_release)
98 ->withObjectIds($object_ids)
99 ->withClassname(static::class)
100 ->withComponent($component);
102 $context = $this->context_holder->create(
104 $this->export_handler->consumer()->exportConfig()->collection(),
113 return $this->export_handler->info()->export()->path()->handler()
114 ->withPathToComponentDirInContainer($this->exp->getExportDirInContainer())
115 ->withPathToComponentExpDirInContainer($this->exp->getPathToComponentExpDirInContainer())
116 ->withSetNumber($this->exp->getSetNumber())
117 ->withIsContainerExport($this->exp->isContainerExport());
Holds the export context for one request.
setLogger(Logger $logger)
An Exporter is responsible for orchestrating the export process.
finalizeExport()
Finalizes the export by setting the path info and writer and calling the write phase of the exporter.
readonly ExportContextHolder $context_holder
initExportContext(string $component, string $target_release, string $type, array $object_ids, string $option='')
trait XmlExporterBridge
Trait to bridge the export functionality between the ILIAS xml export and the local exporter classes.
processExport()
Processes the export in memory using the request export context.
readonly Exporter $exporter