![]() 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/magento/module-analytics/Model/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Analytics\Model; use Magento\Framework\Exception\LocalizedException; use Magento\Framework\FlagManager; /** * Manage saving and loading FileInfo object. */ class FileInfoManager { /** * @var FlagManager */ private $flagManager; /** * @var FileInfoFactory */ private $fileInfoFactory; /** * Flag code for a stored FileInfo object. * * @var string */ private $flagCode = 'analytics_file_info'; /** * Parameters which have to be saved into encoded form. * * @var array */ private $encodedParameters = [ 'initializationVector' ]; /** * @param FlagManager $flagManager * @param FileInfoFactory $fileInfoFactory */ public function __construct( FlagManager $flagManager, FileInfoFactory $fileInfoFactory ) { $this->flagManager = $flagManager; $this->fileInfoFactory = $fileInfoFactory; } /** * Save FileInfo object. * * @param FileInfo $fileInfo * @return bool * @throws LocalizedException */ public function save(FileInfo $fileInfo) { $parameters = []; $parameters['initializationVector'] = $fileInfo->getInitializationVector(); $parameters['path'] = $fileInfo->getPath(); $emptyParameters = array_diff($parameters, array_filter($parameters)); if ($emptyParameters) { throw new LocalizedException( __('These arguments can\'t be empty "%1"', implode(', ', array_keys($emptyParameters))) ); } foreach ($this->encodedParameters as $encodedParameter) { $parameters[$encodedParameter] = $this->encodeValue($parameters[$encodedParameter]); } $this->flagManager->saveFlag($this->flagCode, $parameters); return true; } /** * Load FileInfo object. * * @return FileInfo */ public function load() { $parameters = $this->flagManager->getFlagData($this->flagCode) ?: []; $encodedParameters = array_intersect($this->encodedParameters, array_keys($parameters)); foreach ($encodedParameters as $encodedParameter) { $parameters[$encodedParameter] = $this->decodeValue($parameters[$encodedParameter]); } $fileInfo = $this->fileInfoFactory->create($parameters); return $fileInfo; } /** * Encode value. * * @param string $value * @return string */ private function encodeValue($value) { return base64_encode($value); } /** * Decode value. * * @param string $value * @return string */ private function decodeValue($value) { return base64_decode($value); } }