CLI tools to manage output errors formatting for junit, checkstyle, teamcity, gitlab and github error formats.
Have formatters that I can re-use in projects to format errors. Some code is copied from phpstan. See #4122
useCodeLts\CliTools\Error;
useCodeLts\CliTools\AnalysisResult;
useCodeLts\CliTools\OutputFormat;
useCodeLts\CliTools\Exceptions\FormatNotFoundException;
// if the value is from an user input// Will throw FormatNotFoundException// See valid formats at OutputFormat::VALID_OUTPUT_FORMATS
OutputFormat::checkOutputFormatIsValid('notValidFormat');
$fileSpecificErrors = [
newError(
'My error message',
'/file/path/to/File.php',
15// Line number
),
];
$notFileSpecificErrors = [
'Just an error message',
];
$internalErrors = [
'Oops the internal engine did crash !',
];
$warnings = [
'I warn you that most of this code is tested',
'Contributions are very welcome',
];
$analysisResult = newAnalysisResult(
$fileSpecificErrors,
$notFileSpecificErrors,
$internalErrors,
$warnings
);
OutputFormat::displayUserChoiceFormat(
OutputFormat::OUTPUT_FORMAT_TABLE,// The phpstan table error format, you can have a lot more formats in OutputFormat::VALID_OUTPUT_FORMATS$analysisResult,
$this->sourceRootDirectory,// can be null, if null the error paths will not be pretty and will be displayed as given$this->output// Implement CodeLts\CliTools\Output or use CodeLts\CliTools\Symfony\SymfonyOutput
);useCodeLts\CliTools\File\FileReader;
useCodeLts\CliTools\File\FileWriter;
$fileName = 'myFile.txt';
FileWriter::write(
$fileName,
'Some data, blob, blob, blob.'
);
FileReader::read($fileName);// -> Some data, blob, blob, blob.useCodeLts\CliTools\File\AnsiEscapeSequences;
$this->output->writeFormatted(AnsiEscapeSequences::ERASE_TO_LINE_END);useCodeLts\CliTools\Utils;
// See supported CIs at https://github.com/OndraM/ci-detector#supported-continuous-integration-servers
Utils::isCiDetected(); // true of false