*/ protected $issues_data; /** @var array */ protected $fixable_issue_counts; /** @var bool */ protected $use_color; /** @var bool */ protected $show_snippet; /** @var bool */ protected $show_info; /** @var int */ protected $mixed_expression_count; /** @var int */ protected $total_expression_count; /** * @param array $issues_data * @param array $fixable_issue_counts * @param bool $use_color * @param bool $show_snippet * @param bool $show_info */ public function __construct( array $issues_data, array $fixable_issue_counts, Report\ReportOptions $report_options, int $mixed_expression_count = 1, int $total_expression_count = 1 ) { if (!$report_options->show_info) { $this->issues_data = array_filter( $issues_data, /** * @param array{severity: string} $issue_data */ function (array $issue_data) : bool { return $issue_data['severity'] !== Config::REPORT_INFO; } ); } else { $this->issues_data = $issues_data; } $this->fixable_issue_counts = $fixable_issue_counts; $this->use_color = $report_options->use_color; $this->show_snippet = $report_options->show_snippet; $this->show_info = $report_options->show_info; $this->mixed_expression_count = $mixed_expression_count; $this->total_expression_count = $total_expression_count; } /** * @return string */ abstract public function create(): string; }