Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
handleThemeInstallOrUpdate example
TestDefaults::SALES_CHANNEL,
static
::
isType
(
'string'
)
,
static
::
isInstanceOf
(
Context::
class
)
,
static
::
callback
(
fn
(
StorefrontPluginConfigurationCollection
$configs
)
: bool =>
$configs
->
count
(
)
=== 2
)
)
;
$configs
=
new
StorefrontPluginConfigurationCollection
(
[
$this
->configFactory->
createFromBundle
(
new
Storefront
(
)
)
,
$installConfig
,
]
)
;
$this
->themeLifecycleHandler->
handleThemeInstallOrUpdate
(
$installConfig
,
$configs
, Context::
createDefaultContext
(
)
)
;
}
public
function
testHandleThemeInstallOrUpdateWithInheritance
(
)
: void
{
$installConfig
=
$this
->configFactory->
createFromBundle
(
new
InheritanceWithConfig
(
)
)
;
$configs
=
new
StorefrontPluginConfigurationCollection
(
[
$this
->configFactory->
createFromBundle
(
new
Storefront
(
)
)
,
$installConfig
,
]
)
;
if
(
$this
->
skipCompile
(
$event
->
getContext
(
)
->
getContext
(
)
)
)
{
return
;
}
$pluginName
=
$event
->
getPlugin
(
)
->
getName
(
)
;
$config
=
$this
->storefrontPluginRegistry->
getConfigurations
(
)
->
getByTechnicalName
(
$pluginName
)
;
if
(
!
$config
)
{
return
;
}
$this
->themeLifecycleHandler->
handleThemeInstallOrUpdate
(
$config
,
$this
->storefrontPluginRegistry->
getConfigurations
(
)
,
$event
->
getContext
(
)
->
getContext
(
)
)
;
}
public
function
pluginDeactivateAndUninstall
(
PluginPreDeactivateEvent|PluginPreUninstallEvent
$event
)
: void
{
if
(
$this
->
skipCompile
(
$event
->
getContext
(
)
->
getContext
(
)
)
)
{
return
;
}
->
method
(
'refreshTheme'
)
->
with
(
$config
,
$context
)
;
$this
->connectionMock
->
expects
(
static
::
once
(
)
)
->
method
(
'fetchAllAssociative'
)
->
willReturn
(
[
]
)
;
$this
->themeServiceMock->
expects
(
static
::
never
(
)
)
->
method
(
'compileThemeById'
)
;
$this
->themeServiceMock->
expects
(
static
::
never
(
)
)
->
method
(
'compileTheme'
)
;
$this
->themeLifecycleHandler->
handleThemeInstallOrUpdate
(
$config
,
new
StorefrontPluginConfigurationCollection
(
[
$config
]
)
,
$context
,
)
;
}
}
$configurationCollection
=
$this
->themeRegistry->
getConfigurations
(
)
;
$config
=
$configurationCollection
->
getByTechnicalName
(
$app
->
getName
(
)
)
;
if
(
!
$config
)
{
$config
=
$this
->themeConfigFactory->
createFromApp
(
$app
->
getName
(
)
,
$app
->
getPath
(
)
)
;
$configurationCollection
=
clone
$configurationCollection
;
$configurationCollection
->
add
(
$config
)
;
}
$this
->themeLifecycleHandler->
handleThemeInstallOrUpdate
(
$config
,
$configurationCollection
,
$event
->
getContext
(
)
)
;
}
public
function
handleUninstall
(
AppDeactivatedEvent
$event
)
: void
{
$config
=
$this
->themeRegistry->
getConfigurations
(
)
->
getByTechnicalName
(
$event
->
getApp
(
)
->
getName
(
)
)
;
if
(
!
$config
)
{