string, 'message' => string, 'severity' => string ]. * * @var array> */ protected $issues = array(); /** * Constructor. * * @param float $score Normalized score (clamped to 0.0–1.0). * @param array $issues Optional pre-built issues array. */ public function __construct( $score = 0.0, array $issues = array() ) { $this->set_score( $score ); $this->issues = $issues; } /** * Set (and clamp) the score. * * @param float $score Normalized score. * @return void */ public function set_score( $score ) { $score = (float) $score; $this->score = max( 0.0, min( 1.0, $score ) ); } /** * Get the normalized score. * * @return float */ public function get_score() { return $this->score; } /** * Add an issue. * * @param string $code Machine code, e.g. "missing_gtin". * @param string $message Human-readable, already-translated message. * @param string $severity One of the SEVERITY_* constants. * @return void */ public function add_issue( $code, $message, $severity = self::SEVERITY_WARNING ) { $this->issues[] = array( 'code' => (string) $code, 'message' => (string) $message, 'severity' => (string) $severity, ); } /** * Get all issues. * * @return array> */ public function get_issues() { return $this->issues; } }