Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
DirectoryAttributes example
return
$this
->filesystem->
readStream
(
$location
)
;
}
public
function
listContents
(
string
$location
, bool
$deep
= self::LIST_SHALLOW
)
: DirectoryListing
{
$location
=
$this
->
preparePath
(
$location
)
;
return
new
DirectoryListing
(
array_map
(
function
DStorageAttributes
$info
)
{
if
(
$info
instanceof DirectoryAttributes
)
{
return
new
DirectoryAttributes
(
$this
->
stripPath
(
$info
->
path
(
)
)
,
$info
->
visibility
(
)
,
$info
->
lastModified
(
)
,
$info
->
extraMetadata
(
)
)
;
}
if
(
$info
instanceof FileAttributes
)
{
return
new
FileAttributes
(
$this
->
stripPath
(
$info
->
path
(
)
)
,
$info
->
fileSize
(
)
,
$dirPath
= '';
foreach
(
$parts
as
$index
=>
$part
)
{
if
(
$deep
=== false &&
$index
>= 1
)
{
break
;
}
$dirPath
.=
$part
. '/';
if
(
!\
in_array
(
$dirPath
,
$listedDirectories
, true
)
)
{
$listedDirectories
[
]
=
$dirPath
;
yield
new
DirectoryAttributes
(
trim
(
$prefix
.
$dirPath
, '/'
)
)
;
}
}
}
$dummyFilename
= self::DUMMY_FILE_FOR_FORCED_LISTING_IN_FLYSYSTEM_TEST;
if
(
str_ends_with
(
$path
,
$dummyFilename
)
)
{
continue
;
}
if
(
$deep
=== true || !
str_contains
(
$subPath
, '/'
)
)
{
yield
new
FileAttributes
(
ltrim
(
$path
, '/'
)
,
$file
->
fileSize
(
)
,
$file
->
visibility
(
)
,
$file
->
lastModified
(
)
,
$file
->
mimeType
(
)
)
;
}