alanwillms/php-hound

View on GitHub
src/output/CsvOutput.php

Summary

Maintainability
A
25 mins
Test Coverage
<?php
namespace phphound\output;

use League\Csv\Writer;
use phphound\AnalysisResult;

class CsvOutput extends AbstractOutput
{
    /**
     * @inheritdoc
     */
    public function result(AnalysisResult $result)
    {
        $writer = Writer::createFromString('');
        $writer->insertOne(['File', 'Line', 'Tool', 'Type', 'Message']);

        foreach ($result->toArray() as $fileName => $lines) {
            foreach ($lines as $lineNumber => $issues) {
                foreach ($issues as $issue) {
                    $writer->insertOne([
                        $fileName,
                        $lineNumber,
                        $issue['tool'],
                        $issue['type'],
                        trim($issue['message']),
                    ]);
                }
            }
        }

        $csv = ltrim($writer->__toString());
        $this->cli->out($csv);
    }
}