wiki-grav/plugins/problems/classes/Problems/Base/Problem.php
2022-04-24 14:32:58 +02:00

141 lines
2.3 KiB
PHP

<?php
namespace Grav\Plugin\Problems\Base;
use JsonSerializable;
/**
* Class Problem
* @package Grav\Plugin\Problems\Base
*/
class Problem implements JsonSerializable
{
const LEVEL_CRITICAL = 'critical';
const LEVEL_WARNING = 'warning';
const LEVEL_NOTICE = 'notice';
/** @var string */
protected $id = '';
/** @var int */
protected $order = 0;
/** @var string */
protected $level = '';
/** @var bool */
protected $status = false;
/** @var string */
protected $msg = '';
/** @var array */
protected $details = [];
/** @var string */
protected $help = '';
/** @var string */
protected $class = '';
/**
* @param array $data
* @return void
*/
public function load(array $data): void
{
$this->set_object_vars($data);
}
/**
* @return $this
*/
public function process()
{
return $this;
}
/**
* @return string
*/
public function getId(): string
{
return $this->id;
}
/**
* @return int
*/
public function getOrder(): int
{
return $this->order;
}
/**
* @return string
*/
public function getLevel(): string
{
return $this->level;
}
/**
* @return bool
*/
public function getStatus(): bool
{
return $this->status;
}
/**
* @return string
*/
public function getMsg(): string
{
return $this->msg;
}
/**
* @return array
*/
public function getDetails(): array
{
return $this->details;
}
/**
* @return string
*/
public function getHelp(): string
{
return $this->help;
}
/**
* @return string
*/
public function getClass(): string
{
return $this->class;
}
/**
* @return array
*/
public function toArray(): array
{
return get_object_vars($this);
}
/**
* @return array
*/
public function jsonSerialize(): array
{
return $this->toArray();
}
/**
* @param array $vars
*/
protected function set_object_vars(array $vars): void
{
$has = get_object_vars($this);
foreach ($has as $name => $oldValue) {
$this->{$name} = $vars[$name] ?? null;
}
}
}