. * * @author Daniil Gentili * @copyright 2016-2023 Daniil Gentili * @license https://opensource.org/licenses/AGPL-3.0 AGPLv3 * @link https://docs.madelineproto.xyz MadelineProto documentation */ namespace danog\MadelineProto; /** * Represents an event handler issue. */ final class EventHandlerIssue { public function __construct( /** Issue message */ public readonly string $message, /** Issue file */ public readonly string $file, /** Issue line */ public readonly int $line, /** Whether the issue is severe enough to block inclusion */ public readonly bool $severe, ) { } public function __toString(): string { return \sprintf( Lang::$current_lang[$this->severe ? 'static_analysis_severe' : 'static_analysis_minor'], "{$this->file}:{$this->line}", $this->message ); } public function log(): void { Logger::log((string) $this, Logger::FATAL_ERROR); } public function getHTML(): string { $issueStr = \htmlentities((string) $this); $color = $this->severe ? 'red' : 'orange'; $warning = "

{$issueStr}

"; return $warning; } public function throw(): void { throw new Exception(message: (string) $this, file: $this->file, line: $this->line); } }