@@ -18,16 +18,15 @@ class LocalFileStorage implements FileStorageInterface
18
18
19
19
private SessionInterface $ session ;
20
20
21
- public function __construct (RequestStack $ requestStack , string $ tempDir = null )
21
+ public function __construct (private readonly RequestStack $ requestStack , string $ tempDir = null )
22
22
{
23
- $ this ->session = $ requestStack ->getSession ();
24
23
$ this ->temporaryDirectory = $ tempDir ?: sys_get_temp_dir () . DIRECTORY_SEPARATOR . 's2a ' . DIRECTORY_SEPARATOR . 'collectionupload ' ;
25
24
}
26
25
27
26
public function storeFiles (array $ files ): array
28
27
{
29
28
$ handledFiles = [];
30
- $ sessionFiles = $ this ->session ->get ('s2a_collectionUpload_files ' , []);
29
+ $ sessionFiles = $ this ->getSession () ->get ('s2a_collectionUpload_files ' , []);
31
30
32
31
foreach ($ files as $ file ) {
33
32
$ uid = uniqid ();
@@ -48,7 +47,7 @@ public function storeFiles(array $files): array
48
47
// TODO: should we add a limit to size of files in memory?
49
48
$ sessionFiles [$ uid ] = $ fileDescriptor ;
50
49
}
51
- $ this ->session ->set ('s2a_collectionUpload_files ' , $ sessionFiles );
50
+ $ this ->getSession () ->set ('s2a_collectionUpload_files ' , $ sessionFiles );
52
51
53
52
return $ handledFiles ;
54
53
}
@@ -59,7 +58,7 @@ public function getFile(string $fileId = null): ?UploadedFile
59
58
return null ;
60
59
}
61
60
62
- $ files = $ this ->session ->get ('s2a_collectionUpload_files ' , array ());
61
+ $ files = $ this ->getSession () ->get ('s2a_collectionUpload_files ' , array ());
63
62
if (!array_key_exists ($ fileId , $ files )) {
64
63
return null ;
65
64
}
@@ -77,9 +76,14 @@ public function getFile(string $fileId = null): ?UploadedFile
77
76
);
78
77
}
79
78
unset($ files [$ fileId ]);
80
- $ this ->session ->set ('s2a_collectionUpload_files ' , $ files );
79
+ $ this ->getSession () ->set ('s2a_collectionUpload_files ' , $ files );
81
80
82
81
return $ file ;
83
82
}
84
83
84
+ private function getSession (): SessionInterface
85
+ {
86
+ return $ this ->session ??= $ this ->requestStack ->getSession ();
87
+ }
88
+
85
89
}
0 commit comments