![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/mageworx/module-seoall/Helper/ |
<?php /** * Copyright © 2016 MageWorx. All rights reserved. * See LICENSE.txt for license details. */ namespace MageWorx\SeoAll\Helper; use Magento\Framework\Serialize\Serializer\Json as JsonHelper; /** * Class MagentoVersion */ class MagentoVersion extends \Magento\Framework\App\Helper\AbstractHelper { /** * @var \Magento\Framework\App\ProductMetadataInterface $productMetadata */ protected $productMetadata; /** * @var string|int */ protected $moduleVersion; /** * @var \Magento\Framework\Component\ComponentRegistrarInterface */ protected $componentRegistrar; /** * @var \Magento\Framework\Filesystem\Directory\ReadFactory */ protected $readFactory; /** * @var JsonHelper */ protected $jsonHelper; /** * MagentoVersion constructor. * * @param \Magento\Framework\App\ProductMetadataInterface $productMetadata * @param \Magento\Framework\App\Helper\Context $context * @param \Magento\Framework\Component\ComponentRegistrarInterface $componentRegistrar * @param \Magento\Framework\Filesystem\Directory\ReadFactory $readFactory * @param JsonHelper $jsonHelper */ public function __construct( \Magento\Framework\App\ProductMetadataInterface $productMetadata, \Magento\Framework\App\Helper\Context $context, \Magento\Framework\Component\ComponentRegistrarInterface $componentRegistrar, \Magento\Framework\Filesystem\Directory\ReadFactory $readFactory, JsonHelper $jsonHelper ) { $this->productMetadata = $productMetadata; $this->componentRegistrar = $componentRegistrar; $this->readFactory = $readFactory; $this->jsonHelper = $jsonHelper; parent::__construct($context); } /** * @deprecated - see https://github.com/magento/magento2/issues/24025 * @return string */ public function getVersion() { return $this->productMetadata->getVersion(); } /** * Check module version according to conditions * * @param string $fromVersion * @param string $toVersion * @param string $fromOperator * @param string $toOperator * @param string $moduleName * @return bool|mixed * @throws \Magento\Framework\Exception\FileSystemException */ public function checkModuleVersion( $moduleName, $fromVersion, $toVersion = '', $fromOperator = '>=', $toOperator = '<' ) { if (empty($this->moduleVersion[$moduleName])) { $this->moduleVersion[$moduleName] = $this->getModuleVersion($moduleName); } $fromCondition = version_compare($this->moduleVersion[$moduleName], $fromVersion, $fromOperator); if ($toVersion === '') { return $fromCondition; } return $fromCondition && version_compare($this->moduleVersion[$moduleName], $toVersion, $toOperator); } /** * @param $moduleName * @return int * @throws \Magento\Framework\Exception\FileSystemException */ public function getModuleVersion($moduleName) { $path = $this->componentRegistrar->getPath( \Magento\Framework\Component\ComponentRegistrar::MODULE, $moduleName ); $directoryRead = $this->readFactory->create($path); $composerJsonData = $directoryRead->readFile('composer.json'); $data = $this->jsonHelper->unserialize($composerJsonData); if ($data && is_array($data)) { return !empty($data['version']) ? $data['version'] : 0; } return !empty($data->version) ? $data->version : 0; } }