Um die Komplexität der Ausführungslogik möglichst gering zu halten, ist es sinnvoll, oft verwendete Parameter in private Eigenschaften und jede Aufgabe in eine eigene protected Methode auszulagern. Für Methoden sollte ausschließlich das protected-Schlüsselwort verwendet werden, falls Ihre eigenen Methoden aus der API heraus (d.h. aus der Elternklasse) aufgerufen werden müssen (z.B. mit executeMethodForSubtable im Abschnitt Untertabellen verarbeiten). Beginnen wir nun mit dem schreibenden Öffnen der CSV-Datei im JobRouter-Temp-Verzeichnis:
Private Methoden und Eigenschaften
<?php
class csvSystemActivity extends AbstractSystemActivityAPI
{
...
private $fieldDelimiter;
private $csvFile;
private $csvFilePointer;
protected function exportCsv()
{
$this->debug('exportCsv start');
$this->loadGlobalSettings();
$this->openCsvFile('w');
$this->debug('exportCsv end');
}
protected function loadGlobalSettings()
{
$this->fieldDelimiter = $this->resolveInputParameter('fieldDelimiter');
}
protected function openCsvFile($mode)
{
$this->csvFile = $this->getTempPath() . DIRECTORY_SEPARATOR . 'test.csv';
$this->debug('csvFile: '.$this->csvFile);
$this->csvFilePointer = fopen($this->csvFile, $mode);
}
}