protected function doGenerate($definition, SuiteDocument $document, Config $config, array $parameters = array()) { if ($config['debug']) { $this->output->writeln('<info>Suite XML</info>'); $this->output->writeln($document->saveXML()); } $definition = $this->definitionLoader->load($definition, $document); if (isset($config['pretty_params']) && true === $config['pretty_params']) { $definition['classes']['params'] = array(array('json_format', array())); } if (array_key_exists('formatting', $config) && $config['formatting'] === false) { foreach ($definition['classes'] as &$class) { $class = array(); } } $tableDom = $this->tabular->tabulate($document, $definition, $parameters); if ($config['exclude']) { foreach ($config['exclude'] as $cellName) { $excludeCells = $tableDom->xpath()->query(sprintf('//cell[@name="%s"]', $cellName)); foreach ($excludeCells as $excludeCell) { $excludeCell->parentNode->removeChild($excludeCell); } } } $reportDom = new Document(); $reportEl = $reportDom->createRoot('reports'); $reportEl->setAttribute('name', $config->getName()); $reportEl = $reportEl->appendElement('report'); if ($config['debug']) { $tableDom->formatOutput = true; $this->output->writeln('<info>Table XML</info>'); $this->output->writeln($tableDom->saveXML()); } if ($config['title']) { $reportEl->setAttribute('title', $config['title']); } if ($config['description']) { $reportEl->appendElement('description', $config['description']); } $tableEl = $reportEl->ownerDocument->importNode($tableDom->firstChild, true); $reportEl->appendChild($tableEl); return $reportEl->ownerDocument; }
protected function doGenerate($definition, SuiteDocument $document, array $config, array $parameters = array()) { if ($config['debug']) { $this->output->writeln('<info>Suite XML</info>'); $this->output->writeln($document->saveXML()); } $tableDom = $this->tabular->tabulate($document, $definition, $parameters); if ($config['debug']) { $tableDom->formatOutput = true; $this->output->writeln('<info>Table XML</info>'); $this->output->writeln($tableDom->saveXML()); } if ($config['title']) { $this->output->writeln(sprintf('<title>%s</title>', $config['title'])); } if ($config['description']) { $this->output->writeln(sprintf('<description>%s</description>', $config['description'])); } $this->render($tableDom, $config); }