HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/web/phpmyadmin (prev)/libraries/classes/Table/Maintenance/Message.php
<?php

declare(strict_types=1);

namespace PhpMyAdmin\Table\Maintenance;

use function is_string;

/**
 * @psalm-immutable
 */
final class Message
{
    /** @var string */
    public $table;

    /** @var string */
    public $operation;

    /** @var string */
    public $type;

    /** @var string */
    public $text;

    private function __construct(string $table, string $operation, string $type, string $text)
    {
        $this->table = $table;
        $this->operation = $operation;
        $this->type = $type;
        $this->text = $text;
    }

    /**
     * @param mixed[] $row
     */
    public static function fromArray(array $row): self
    {
        $table = isset($row['Table']) && is_string($row['Table']) ? $row['Table'] : '';
        $operation = isset($row['Op']) && is_string($row['Op']) ? $row['Op'] : '';
        $type = isset($row['Msg_type']) && is_string($row['Msg_type']) ? $row['Msg_type'] : '';
        $text = isset($row['Msg_text']) && is_string($row['Msg_text']) ? $row['Msg_text'] : '';

        return new self($table, $operation, $type, $text);
    }
}