| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 | <?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;    }}
 |