/** * @covers \NewFrontiers\Framework\Output\Parser::hasVariable */ public function testHasVariable() { $this->assertFalse(Parser::hasVariable("Text text text\n[NoVar], (NoVar), /NoVar/, \\NoVar\\")); $this->assertFalse(Parser::hasVariable("Text {FailVar")); $this->assertFalse(Parser::hasVariable("Text FailVar}")); $this->assertTrue(Parser::hasVariable("Text \n text {var} text")); }
/** * Exportiert einen Datensatz. Der Datensatz wird in ein passendes * Array gewandelt (auf Basis des Mappings). Dieses wird dann über * die Array-Funktion exportiert. * * @param BaseEntity $entity */ protected function exportEntityRow(BaseEntity $entity) { $row = []; foreach ($this->mapping as $header => $field) { $value = ''; if ($field !== '') { if (Parser::hasVariable($field)) { // Falls eine Variable enthalten ist -> Parsen $value = Parser::getInstance()->parse($entity, null, [], $field); } else { // Jetzt könnte es ein Feld oder ein fester Wert sein if ($entity->hasField($field)) { $value = $entity->{$field}; } else { $value = $field; } } // Muss ein Callback aufgerufen werden if (isset($this->callbacks[$header])) { $callable = $this->callbacks[$header]; $value = $callable($value); } $value = trim($value); if (strlen($value) > $this->length[$header]) { $value = substr($value, 0, $this->length[$header]); } } $row[$header] = trim($value); } $this->exportArrayRow($row); }