You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
207 lines
5.1 KiB
207 lines
5.1 KiB
<?php |
|
/** |
|
* Server Plugin value object |
|
*/ |
|
|
|
declare(strict_types=1); |
|
|
|
namespace PhpMyAdmin\Server; |
|
|
|
/** |
|
* Server Plugin value object |
|
*/ |
|
final class Plugin |
|
{ |
|
/** @var string */ |
|
private $name; |
|
|
|
/** @var string|null */ |
|
private $version; |
|
|
|
/** @var string */ |
|
private $status; |
|
|
|
/** @var string */ |
|
private $type; |
|
|
|
/** @var string|null */ |
|
private $typeVersion; |
|
|
|
/** @var string|null */ |
|
private $library; |
|
|
|
/** @var string|null */ |
|
private $libraryVersion; |
|
|
|
/** @var string|null */ |
|
private $author; |
|
|
|
/** @var string|null */ |
|
private $description; |
|
|
|
/** @var string */ |
|
private $license; |
|
|
|
/** @var string|null */ |
|
private $loadOption; |
|
|
|
/** @var string|null */ |
|
private $maturity; |
|
|
|
/** @var string|null */ |
|
private $authVersion; |
|
|
|
/** |
|
* @param string $name Name of the plugin |
|
* @param string|null $version Version from the plugin's general type descriptor |
|
* @param string $status Plugin status |
|
* @param string $type Type of plugin |
|
* @param string|null $typeVersion Version from the plugin's type-specific descriptor |
|
* @param string|null $library Plugin's shared object file name |
|
* @param string|null $libraryVersion Version from the plugin's API interface |
|
* @param string|null $author Author of the plugin |
|
* @param string|null $description Description |
|
* @param string $license Plugin's licence |
|
* @param string|null $loadOption How the plugin was loaded |
|
* @param string|null $maturity Plugin's maturity level |
|
* @param string|null $authVersion Plugin's version as determined by the plugin author |
|
*/ |
|
private function __construct( |
|
string $name, |
|
?string $version, |
|
string $status, |
|
string $type, |
|
?string $typeVersion, |
|
?string $library, |
|
?string $libraryVersion, |
|
?string $author, |
|
?string $description, |
|
string $license, |
|
?string $loadOption, |
|
?string $maturity, |
|
?string $authVersion |
|
) { |
|
$this->name = $name; |
|
$this->version = $version; |
|
$this->status = $status; |
|
$this->type = $type; |
|
$this->typeVersion = $typeVersion; |
|
$this->library = $library; |
|
$this->libraryVersion = $libraryVersion; |
|
$this->author = $author; |
|
$this->description = $description; |
|
$this->license = $license; |
|
$this->loadOption = $loadOption; |
|
$this->maturity = $maturity; |
|
$this->authVersion = $authVersion; |
|
} |
|
|
|
/** |
|
* @param array $state array with the properties |
|
*/ |
|
public static function fromState(array $state): self |
|
{ |
|
return new self( |
|
$state['name'] ?? '', |
|
$state['version'] ?? null, |
|
$state['status'] ?? '', |
|
$state['type'] ?? '', |
|
$state['typeVersion'] ?? null, |
|
$state['library'] ?? null, |
|
$state['libraryVersion'] ?? null, |
|
$state['author'] ?? null, |
|
$state['description'] ?? null, |
|
$state['license'] ?? '', |
|
$state['loadOption'] ?? null, |
|
$state['maturity'] ?? null, |
|
$state['authVersion'] ?? null |
|
); |
|
} |
|
|
|
/** |
|
* @return array |
|
*/ |
|
public function toArray(): array |
|
{ |
|
return [ |
|
'name' => $this->getName(), |
|
'version' => $this->getVersion(), |
|
'status' => $this->getStatus(), |
|
'type' => $this->getType(), |
|
'type_version' => $this->getTypeVersion(), |
|
'library' => $this->getLibrary(), |
|
'library_version' => $this->getLibraryVersion(), |
|
'author' => $this->getAuthor(), |
|
'description' => $this->getDescription(), |
|
'license' => $this->getLicense(), |
|
'load_option' => $this->getLoadOption(), |
|
'maturity' => $this->getMaturity(), |
|
'auth_version' => $this->getAuthVersion(), |
|
]; |
|
} |
|
|
|
public function getName(): string |
|
{ |
|
return $this->name; |
|
} |
|
|
|
public function getVersion(): ?string |
|
{ |
|
return $this->version; |
|
} |
|
|
|
public function getStatus(): string |
|
{ |
|
return $this->status; |
|
} |
|
|
|
public function getType(): string |
|
{ |
|
return $this->type; |
|
} |
|
|
|
public function getTypeVersion(): ?string |
|
{ |
|
return $this->typeVersion; |
|
} |
|
|
|
public function getLibrary(): ?string |
|
{ |
|
return $this->library; |
|
} |
|
|
|
public function getLibraryVersion(): ?string |
|
{ |
|
return $this->libraryVersion; |
|
} |
|
|
|
public function getAuthor(): ?string |
|
{ |
|
return $this->author; |
|
} |
|
|
|
public function getDescription(): ?string |
|
{ |
|
return $this->description; |
|
} |
|
|
|
public function getLicense(): string |
|
{ |
|
return $this->license; |
|
} |
|
|
|
public function getLoadOption(): ?string |
|
{ |
|
return $this->loadOption; |
|
} |
|
|
|
public function getMaturity(): ?string |
|
{ |
|
return $this->maturity; |
|
} |
|
|
|
public function getAuthVersion(): ?string |
|
{ |
|
return $this->authVersion; |
|
} |
|
}
|
|
|