HEX
Server: Apache/2.4.65 (Debian)
System: Linux 88f31f35b0b8 6.1.0-38-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.147-1 (2025-08-02) x86_64
User: www-data (33)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/html/wp-content/plugins/query-monitor/classes/Wrong.php
<?php declare(strict_types = 1);
/**
 * Class representing something that's kind of wrong.
 *
 * @package query-monitor
 */

/**
 * @template TArgs of array
 */
abstract class QM_Wrong implements JsonSerializable {
	private QM_Backtrace $backtrace;

	/**
	 * @phpstan-var TArgs $args
	 */
	protected array $args;

	/**
	 * @phpstan-param TArgs $args
	 */
	public function __construct( QM_Backtrace $backtrace, array $args = [] ) {
		$this->backtrace = $backtrace;
		$this->args = $args;
	}

	abstract public function get_message(): string;

	final public function get_trace(): QM_Backtrace {
		return $this->backtrace;
	}

	/**
	 * @return array{trace: QM_Backtrace, message: string}
	 */
	public function jsonSerialize(): array {
		return [
			'trace' => $this->backtrace,
			'message' => $this->get_message(),
		];
	}
}