diff --git a/Model/ComponentList/Loader/AbstractLoader.php b/Model/ComponentList/Loader/AbstractLoader.php index 6605b47..28c33c1 100644 --- a/Model/ComponentList/Loader/AbstractLoader.php +++ b/Model/ComponentList/Loader/AbstractLoader.php @@ -9,14 +9,31 @@ abstract class AbstractLoader implements LoaderInterface */ protected $componentHelper; + /** + * @var \Psr\Log\LoggerInterface $logger + */ + protected $logger; + + /** + * @var array + */ protected $items = []; + /** + * @var bool + */ protected $isLoaded = false; + /** + * @param \Swissup\Core\Helper\Component $componentHelper + * @param \Psr\Log\LoggerInterface $logger + */ public function __construct( - \Swissup\Core\Helper\Component $componentHelper + \Swissup\Core\Helper\Component $componentHelper, + \Psr\Log\LoggerInterface $logger ) { $this->componentHelper = $componentHelper; + $this->logger = $logger; } /** @@ -35,6 +52,7 @@ public function load() try { $components = $this->getComponentsInfo(); } catch (\Exception $e) { + $this->logger->critical($e->getMessage()); return []; } diff --git a/Model/ComponentList/Loader/Local.php b/Model/ComponentList/Loader/Local.php index 4fd6623..014c64a 100644 --- a/Model/ComponentList/Loader/Local.php +++ b/Model/ComponentList/Loader/Local.php @@ -27,17 +27,19 @@ class Local extends AbstractLoader /** * @param \Swissup\Core\Helper\Component $componentHelper + * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Component\ComponentRegistrarInterface $registrar * @param \Magento\Framework\Json\DecoderInterface $jsonDecoder * @param \Magento\Framework\Filesystem\Driver\File $filesystemDriver */ public function __construct( \Swissup\Core\Helper\Component $componentHelper, + \Psr\Log\LoggerInterface $logger, \Magento\Framework\Component\ComponentRegistrarInterface $registrar, \Magento\Framework\Json\DecoderInterface $jsonDecoder, \Magento\Framework\Filesystem\Driver\File $filesystemDriver ) { - parent::__construct($componentHelper); + parent::__construct($componentHelper, $logger); $this->registrar = $registrar; $this->jsonDecoder = $jsonDecoder; $this->filesystemDriver = $filesystemDriver; diff --git a/Model/ComponentList/Loader/Remote.php b/Model/ComponentList/Loader/Remote.php index cbf3e46..1aa4840 100644 --- a/Model/ComponentList/Loader/Remote.php +++ b/Model/ComponentList/Loader/Remote.php @@ -36,6 +36,7 @@ class Remote extends AbstractLoader /** * @param \Swissup\Core\Helper\Component $componentHelper + * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\App\RequestInterface $request * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig * @param \Magento\Framework\Json\Helper\Data $jsonHelper @@ -43,13 +44,14 @@ class Remote extends AbstractLoader */ public function __construct( \Swissup\Core\Helper\Component $componentHelper, + \Psr\Log\LoggerInterface $logger, \Magento\Framework\App\RequestInterface $request, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Framework\Json\Helper\Data $jsonHelper, \Magento\Framework\HTTP\ZendClientFactory $httpClientFactory, \Magento\Framework\App\CacheInterface $cache ) { - parent::__construct($componentHelper); + parent::__construct($componentHelper, $logger); $this->request = $request; $this->scopeConfig = $scopeConfig; $this->jsonHelper = $jsonHelper; @@ -90,6 +92,7 @@ public function getComponentsInfo() } $response = $this->jsonHelper->jsonDecode($responseBody); } catch (\Exception $e) { + $this->logger->critical($e->getMessage()); $response = []; // Swissup_Subscription will be added below - used by // subscription activation module @@ -104,7 +107,7 @@ public function getComponentsInfo() foreach ($response['packages'] as $packageName => $info) { $versions = array_keys($info); $latestVersion = array_reduce($versions, function ($carry, $item) { - if (version_compare($carry, $item) === -1) { + if ((!$carry && $item) || version_compare($carry, $item) === -1) { $carry = $item; } return $carry;