PhpBench\Report\ReportManager::generateReports PHP Method

generateReports() public method

Generate the named reports.
public generateReports ( SuiteCollection $collection, array $reportNames )
$collection PhpBench\Model\SuiteCollection
$reportNames array
    public function generateReports(SuiteCollection $collection, array $reportNames)
    {
        $reportDoms = [];
        $reportConfigs = [];
        foreach ($reportNames as $reportName) {
            $reportConfigs[$reportName] = $this->generatorRegistry->getConfig($reportName);
        }
        foreach ($reportConfigs as $reportName => $reportConfig) {
            $generatorName = $reportConfig['generator'];
            $generator = $this->generatorRegistry->getService($generatorName);
            $reportDom = $generator->generate($collection, $reportConfig);
            if (!$reportDom instanceof Document) {
                throw new \RuntimeException(sprintf('Report generator "%s" should have return a PhpBench\\Dom\\Document class, got: "%s"', $generatorName, is_object($reportDom) ? get_class($reportDom) : gettype($reportDom)));
            }
            $reportDom->schemaValidate(__DIR__ . '/schema/report.xsd');
            $reportDoms[] = $reportDom;
        }
        return $reportDoms;
    }

Usage Example

Example #1
0
 /**
  * {@inheritdoc}
  */
 public function generate(SuiteDocument $result, array $config)
 {
     $reportDoms = $this->reportManager->generateReports($result, $config['reports']);
     $compositeDom = new Document();
     $compositeEl = $compositeDom->createRoot('reports');
     foreach ($reportDoms as $reportsDom) {
         foreach ($reportsDom->xpath()->query('./report') as $reportDom) {
             $reportEl = $compositeDom->importNode($reportDom, true);
             $compositeEl->appendChild($reportEl);
         }
     }
     return $compositeDom;
 }
All Usage Examples Of PhpBench\Report\ReportManager::generateReports