Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
getMediaFolderId example
$media
= null;
if
(
isset
(
$deserialized
[
'id'
]
)
)
{
$media
=
$this
->mediaRepository->
search
(
new
Criteria
(
[
$deserialized
[
'id'
]
]
)
, Context::
createDefaultContext
(
)
)
->
first
(
)
;
}
$isNew
=
$media
=== null;
if
(
$isNew
||
$media
->
getUrl
(
)
!==
$url
)
{
$entityName
=
$config
->
get
(
'sourceEntity'
)
??
$definition
->
getEntityName
(
)
;
$deserialized
[
'mediaFolderId'
]
??=
$this
->
getMediaFolderId
(
$deserialized
[
'id'
]
?? null,
$entityName
)
;
$deserialized
[
'id'
]
??= Uuid::
randomHex
(
)
;
$parsed
=
parse_url
(
(string)
$url
)
;
if
(
!
$parsed
)
{
throw
new
\
RuntimeException
(
'Error parsing media URL: ' .
$url
)
;
}
$pathInfo
=
pathinfo
(
$parsed
[
'path'
]
?? ''
)
;
$media
=
$this
->
fetchFileFromURL
(
(string)
$url
,
$pathInfo
[
'extension'
]
?? ''
)
;
protected
function
createNotSupportedMediaFiles
(
)
: void
{
$this
->
setFixtureContext
(
$this
->context
)
;
$mediaPdf
=
$this
->
getPdf
(
)
;
$mediaJpg
=
$this
->
getJpgWithFolder
(
)
;
$this
->mediaRepository->
update
(
[
[
'id' =>
$mediaPdf
->
getId
(
)
,
'mediaFolderId' =>
$mediaJpg
->
getMediaFolderId
(
)
,
]
,
]
,
$this
->context
)
;
$filePath
=
$this
->urlGenerator->
getRelativeMediaUrl
(
$mediaPdf
)
;
$this
->
getPublicFilesystem
(
)
->
writeStream
(
$filePath
,
fopen
(
__DIR__ . '/../fixtures/small.pdf', 'rb'
)
)
;
$filePath
=
$this
->urlGenerator->
getRelativeMediaUrl
(
$mediaJpg
)
;
$this
->
getPublicFilesystem
(
)
->
writeStream
(
$filePath
,
fopen
(
__DIR__ . '/../fixtures/shopware.jpg', 'rb'
)
)
;
}
$this
->
expectException
(
MediaException::
class
)
;
$this
->
expectExceptionMessage
(
MediaException::
mediaFolderIdNotFound
(
$folderId
)
->
getMessage
(
)
)
;
$this
->mediaFolderService->
dissolve
(
$folderId
,
$this
->context
)
;
}
public
function
testDissolveWithNoChildFolders
(
)
: void
{
$this
->
setFixtureContext
(
$this
->context
)
;
$media
=
$this
->
getJpgWithFolder
(
)
;
$mediaFolderId
=
$media
->
getMediaFolderId
(
)
;
static
::
assertIsString
(
$mediaFolderId
)
;
$mediaFolder
=
$this
->mediaFolderRepo
->
search
(
new
Criteria
(
array_filter
(
[
$mediaFolderId
]
)
)
,
$this
->context
)
->
get
(
$mediaFolderId
)
;
static
::
assertInstanceOf
(
MediaFolderEntity::
class
,
$mediaFolder
)
;
$configId
=
$mediaFolder
->
getConfigurationId
(
)
;
$this
->mediaFolderService->
dissolve
(
$mediaFolderId
,
$this
->context
)
;
$this
->themeLifecycleService->
refreshTheme
(
$bundle
,
$this
->context
)
;
$themeEntity
=
$this
->
getTheme
(
$bundle
)
;
static
::
assertTrue
(
$themeEntity
->
isActive
(
)
)
;
static
::
assertInstanceOf
(
MediaCollection::
class
,
$themeEntity
->
getMedia
(
)
)
;
static
::
assertEquals
(
2,
$themeEntity
->
getMedia
(
)
->
count
(
)
)
;
$themeDefaultFolderId
=
$this
->
getThemeMediaDefaultFolderId
(
)
;
foreach
(
$themeEntity
->
getMedia
(
)
as
$media
)
{
static
::
assertEquals
(
$themeDefaultFolderId
,
$media
->
getMediaFolderId
(
)
)
;
}
}
public
function
testThemeConfigInheritanceAddsParentTheme
(
)
: void
{
$parentBundle
=
$this
->
getThemeConfigWithLabels
(
)
;
$this
->themeLifecycleService->
refreshTheme
(
$parentBundle
,
$this
->context
)
;
$bundle
=
$this
->
getThemeConfig
(
)
;
$bundle
->
setConfigInheritance
(
[
'@' .
$parentBundle
->
getTechnicalName
(
)
]
)
;
$this
->themeLifecycleService->
refreshTheme
(
$bundle
,
$this
->context
)
;
imagedestroy
(
$thumbnail
)
;
}
imagedestroy
(
$mediaImage
)
;
}
finally
{
return
$savedThumbnails
;
}
}
private
function
ensureConfigIsLoaded
(
MediaEntity
$media
, Context
$context
)
: void
{
$mediaFolderId
=
$media
->
getMediaFolderId
(
)
;
if
(
$mediaFolderId
=== null
)
{
return
;
}
if
(
$media
->
getMediaFolder
(
)
!== null
)
{
return
;
}
$criteria
=
new
Criteria
(
[
$mediaFolderId
]
)
;
$criteria
->
addAssociation
(
'configuration.mediaThumbnailSizes'
)
;