Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
FileInfoManager.php
Go to the documentation of this file.
1 <?php
7 
10 
15 {
19  private $flagManager;
20 
24  private $fileInfoFactory;
25 
31  private $flagCode = 'analytics_file_info';
32 
38  private $encodedParameters = [
39  'initializationVector'
40  ];
41 
46  public function __construct(
47  FlagManager $flagManager,
48  FileInfoFactory $fileInfoFactory
49  ) {
50  $this->flagManager = $flagManager;
51  $this->fileInfoFactory = $fileInfoFactory;
52  }
53 
61  public function save(FileInfo $fileInfo)
62  {
63  $parameters = [];
64  $parameters['initializationVector'] = $fileInfo->getInitializationVector();
65  $parameters['path'] = $fileInfo->getPath();
66 
67  $emptyParameters = array_diff($parameters, array_filter($parameters));
68  if ($emptyParameters) {
69  throw new LocalizedException(
70  __('These arguments can\'t be empty "%1"', implode(', ', array_keys($emptyParameters)))
71  );
72  }
73 
74  foreach ($this->encodedParameters as $encodedParameter) {
75  $parameters[$encodedParameter] = $this->encodeValue($parameters[$encodedParameter]);
76  }
77 
78  $this->flagManager->saveFlag($this->flagCode, $parameters);
79 
80  return true;
81  }
82 
88  public function load()
89  {
90  $parameters = $this->flagManager->getFlagData($this->flagCode) ?: [];
91 
92  $encodedParameters = array_intersect($this->encodedParameters, array_keys($parameters));
93  foreach ($encodedParameters as $encodedParameter) {
94  $parameters[$encodedParameter] = $this->decodeValue($parameters[$encodedParameter]);
95  }
96 
97  $fileInfo = $this->fileInfoFactory->create($parameters);
98 
99  return $fileInfo;
100  }
101 
108  private function encodeValue($value)
109  {
110  return base64_encode($value);
111  }
112 
119  private function decodeValue($value)
120  {
121  return base64_decode($value);
122  }
123 }
__()
Definition: __.php:13
$value
Definition: gender.phtml:16
__construct(FlagManager $flagManager, FileInfoFactory $fileInfoFactory)