203 lines
4.7 KiB
PHP
203 lines
4.7 KiB
PHP
<?php
|
|
/**
|
|
* @package Plumrocket_Base
|
|
* @copyright Copyright (c) 2020 Plumrocket Inc. (https://plumrocket.com)
|
|
* @license https://plumrocket.com/license End-user License Agreement
|
|
*/
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Plumrocket\Base\Model\Extension\Information;
|
|
|
|
use Magento\Framework\DataObject;
|
|
use Plumrocket\Base\Api\Data\ExtensionInformationInterface;
|
|
use Plumrocket\Base\Api\GetModuleVersionInterface;
|
|
|
|
/**
|
|
* Container for information about extension that parsed from "pr_extensions.xml"
|
|
*
|
|
* Can be used for old extension which has not xml file
|
|
* and does not realize \Plumrocket\Base\Api\ModuleInformationInterface
|
|
*
|
|
* @since 2.5.0
|
|
*/
|
|
class Container extends DataObject implements ExtensionInformationInterface
|
|
{
|
|
/**
|
|
* @var \Plumrocket\Base\Api\GetModuleVersionInterface
|
|
*/
|
|
private $getModuleVersion;
|
|
|
|
/**
|
|
* @param \Plumrocket\Base\Api\GetModuleVersionInterface $getModuleVersion
|
|
* @param array $data
|
|
*/
|
|
public function __construct(
|
|
GetModuleVersionInterface $getModuleVersion,
|
|
array $data = []
|
|
) {
|
|
parent::__construct($data);
|
|
$this->getModuleVersion = $getModuleVersion;
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function isService(): bool
|
|
{
|
|
return (bool) $this->_getData(self::FIELD_IS_SERVICE);
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function getTitle(): string
|
|
{
|
|
return (string) $this->_getData(self::FIELD_TITLE);
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function getDocumentationLink(): string
|
|
{
|
|
return (string) ($this->_getData(self::FIELD_DOCUMENTATION) ?: $this->_getData(self::FIELD_WIKI));
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function getWikiLink(): string
|
|
{
|
|
return $this->getDocumentationLink();
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function getUrl(): string
|
|
{
|
|
return (string) $this->_getData(self::FIELD_URL);
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function getMarketplaceUrl(): string
|
|
{
|
|
return (string) $this->_getData(self::FIELD_MARKETPLACE_URL);
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function getConfigSection(): string
|
|
{
|
|
return (string) $this->_getData(self::FIELD_CONFIG_SECTION);
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function getIsEnabledFieldConfigPath(): string
|
|
{
|
|
return (string) $this->_getData(self::FIELD_IS_ENABLED_PATH);
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function getModuleName(): string
|
|
{
|
|
return (string) $this->_getData(self::FIELD_MODULE_NAME);
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function getVendorAndModuleName(): string
|
|
{
|
|
return "Plumrocket_{$this->getModuleName()}";
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function getInstalledVersion(): string
|
|
{
|
|
return $this->getModuleVersion->execute($this->getVendorAndModuleName());
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function setIsService(bool $isService): ExtensionInformationInterface
|
|
{
|
|
return $this->setData(self::FIELD_IS_SERVICE, $isService);
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function setTitle(string $title): ExtensionInformationInterface
|
|
{
|
|
return $this->setData(self::FIELD_TITLE, $title);
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function setConfigSection(string $configSection): ExtensionInformationInterface
|
|
{
|
|
return $this->setData(self::FIELD_CONFIG_SECTION, $configSection);
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function setDocumentationLink(string $documentationLink): ExtensionInformationInterface
|
|
{
|
|
return $this->setData(self::FIELD_DOCUMENTATION, $documentationLink);
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function setWikiLink(string $wikiLink): ExtensionInformationInterface
|
|
{
|
|
return $this->setDocumentationLink($wikiLink);
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function setUrl(string $extensionUrl): ExtensionInformationInterface
|
|
{
|
|
return $this->setData(self::FIELD_URL, $extensionUrl);
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function setMarketplaceUrl(string $extensionMarketplaceUrl): ExtensionInformationInterface
|
|
{
|
|
return $this->setData(self::FIELD_MARKETPLACE_URL, $extensionMarketplaceUrl);
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function setModuleName(string $moduleName): ExtensionInformationInterface
|
|
{
|
|
return $this->setData(self::FIELD_MODULE_NAME, $moduleName);
|
|
}
|
|
|
|
/**
|
|
* @inheritDoc
|
|
*/
|
|
public function setIsEnabledFieldConfigPath(string $configPath): ExtensionInformationInterface
|
|
{
|
|
return $this->setData(self::FIELD_IS_ENABLED_PATH, $configPath);
|
|
}
|
|
}
|