phpmyadmin/libraries/classes/Dbal/Warning.php
Kamil Tekiela 0bdcaba2d2
Add native property types (#18143)
* Add native property types

Includes TypeHints.UnionTypeHintFormat

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Set some default values for properties

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Format and promote properties

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Remove redundant asserts

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Redundant cast

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* $tmanager->theme is never null

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Redundant variable

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Fix empty on $statementInfo bool

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Redundant casts

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Redundant issets

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* getPacked() returns nullable string

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Redundant if

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* $this->content can be null

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Simplify ThemeManager::getInstance()

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Use isset for checking if property is initialized

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Use nullable instead of uninitialized property

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* password is no longer nullable

I can't verify that none of the globals ever tried to set it to null, but the variable should never be nullable.

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Update baselines

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* $same_wide_width param can be float or int

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Update Message.php

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Cast Sub_part to int

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

* Fix one line doc comments

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>

---------

Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2023-02-26 23:30:41 -03:00

61 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
namespace PhpMyAdmin\Dbal;
use Stringable;
use function in_array;
use function is_numeric;
use function is_string;
/**
* @see https://mariadb.com/kb/en/show-warnings/
* @see https://dev.mysql.com/doc/refman/en/show-warnings.html
*
* @psalm-immutable
*/
final class Warning implements Stringable
{
/** @psalm-var 'Note'|'Warning'|'Error'|'?' */
public string $level;
/** @psalm-var 0|positive-int */
public int $code;
private function __construct(string $level, int $code, public string $message)
{
$this->level = in_array($level, ['Note', 'Warning', 'Error'], true) ? $level : '?';
$this->code = $code >= 1 ? $code : 0;
}
/** @param mixed[] $row */
public static function fromArray(array $row): self
{
$level = '';
$code = 0;
$message = '';
if (isset($row['Level']) && is_string($row['Level'])) {
$level = $row['Level'];
}
if (isset($row['Code']) && is_numeric($row['Code'])) {
$code = (int) $row['Code'];
}
if (isset($row['Message']) && is_string($row['Message'])) {
$message = $row['Message'];
}
return new self($level, $code, $message);
}
/** @psalm-return non-empty-string */
public function __toString(): string
{
return $this->level . ': #' . $this->code . ($this->message !== '' ? ' ' . $this->message : '');
}
}