DEPRECATION WARNING
This documentation is not using the current rendering mechanism and is probably outdated. The extension maintainer should switch to the new system. Details on how to use the rendering mechanism can be found here.
Eigene Implementierung¶
Im nachfolgenden wird die Verwendung einer eigenen Implementierung für den Meldungsimport beschrieben.
Die AbstractNewsImport-Klasse¶
Die AbstractNewsImport Klasse unter PresseServiceTYPO3DomainImportAbstractNewsImport kümmert sich um die Auflösung aller Abhängigkeiten und stellt einen Bauplan für konkrete Implementierungen eines NewsImports vom PresseService zur Verfügung.
Im nachfolgenden sind die Abhängigkeiten der AbstractNewsImport-Klasse erläutert.
Der Soap-Client¶
Der SoapClient unter PresseServiceTYPO3SoapClient dient als Hilfsklasse zur Abfrage des Webservers. Ersterer erwartet ein Konfigurations-Array für die URL des Webservers und die ID der Pressestelle.
Beispiel¶
Beispiel für ungecachte WSDL-Antworten:
Datei: MyExtClassesDomainImportSoapClient.php
<?php
namespace MyExt\Domain\Import;
use PresseService\TYPO3\SoapClient;
class UncachedWSDLSoapClient extends SoapClient
{
public function __construct(array $configuration)
{
parent::__construct();
$this->options['cache_wsdl'] = WSDL_CACHE_NONE;
}
}
Eigene Implementierung der NewsImport Klasse.
<?php
namespace MyExt\Domain\Import;
use PresseService\TYPO3\Domain\Import\NewsImport;
class MyNewsImport extends NewsImport
{
// todo: Konfiguration bereitstellen
$config = [];
$this->setSoapClient(new UncachedWSDLSoapClient($config));
}
Eigenen Task verwenden:
<?php
namespace MyExt\Task;
use TYPO3\CMS\Scheduler\Task\AbstractTask;
use MyExt\Domain\Import\MyNewsImport
class MySyncMeldungenTask extends AbstractTask
{
/** @var bool Wahr, wenn ein vollständiger Meldungsimport gewünscht ist */
public $complete = false;
public function execute()
{
$newsImport = new MyNewsImport();
$newsImport->setComplete($this->complete);
return $newsImport->run();
}
}
Nach diesem Schema können alle Abhängigkeiten der Abstrakten Klasse über Setter überschrieben und an anderen Orten (hier: Task) verwendet werden.