24 private $fileInfoFactory;
31 private $flagCode =
'analytics_file_info';
38 private $encodedParameters = [
39 'initializationVector' 48 FileInfoFactory $fileInfoFactory
51 $this->fileInfoFactory = $fileInfoFactory;
64 $parameters[
'initializationVector'] =
$fileInfo->getInitializationVector();
65 $parameters[
'path'] =
$fileInfo->getPath();
67 $emptyParameters = array_diff($parameters, array_filter($parameters));
68 if ($emptyParameters) {
70 __(
'These arguments can\'t be empty "%1"', implode(
', ', array_keys($emptyParameters)))
74 foreach ($this->encodedParameters as $encodedParameter) {
75 $parameters[$encodedParameter] = $this->encodeValue($parameters[$encodedParameter]);
78 $this->flagManager->saveFlag($this->flagCode, $parameters);
90 $parameters = $this->flagManager->getFlagData($this->flagCode) ?: [];
92 $encodedParameters = array_intersect($this->encodedParameters, array_keys($parameters));
93 foreach ($encodedParameters as $encodedParameter) {
94 $parameters[$encodedParameter] = $this->decodeValue($parameters[$encodedParameter]);
97 $fileInfo = $this->fileInfoFactory->create($parameters);
108 private function encodeValue(
$value)
110 return base64_encode(
$value);
119 private function decodeValue(
$value)
121 return base64_decode(
$value);
__construct(FlagManager $flagManager, FileInfoFactory $fileInfoFactory)