Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
ConsoleIO example
protected
function
execute
(
InputInterface
$input
, OutputInterface
$output
)
: int
{
$io
=
new
ShopwareStyle
(
$input
,
$output
)
;
$io
->
title
(
'Shopware Plugin Service'
)
;
$context
= Context::
createDefaultContext
(
)
;
$composerInput
=
clone
$input
;
$composerInput
->
setInteractive
(
false
)
;
$helperSet
=
$this
->
getHelperSet
(
)
;
\
assert
(
$helperSet
instanceof HelperSet
)
;
$errors
=
$this
->pluginService->
refreshPlugins
(
$context
,
new
ConsoleIO
(
$composerInput
,
$output
,
$helperSet
)
)
;
$io
->
success
(
'Plugin list refreshed'
)
;
if
(
\
count
(
$errors
)
!== 0
)
{
$io
->
writeln
(
'Errors occurred while refreshing plugin list'
)
;
foreach
(
$errors
as
$key
=>
$error
)
{
if
(
\
is_int
(
$key
)
)
{
$io
->
error
(
$error
->
getMessage
(
)
)
;
}
else
{
$io
->
error
(
$key
. ': ' .
$error
->
getMessage
(
)
)
;
}
}
}
$io
->
success
(
'Successfully import zip file ' .
basename
(
(string)
$zipFile
)
)
;
if
(
!
$input
->
getOption
(
'no-refresh'
)
)
{
$composerInput
=
clone
$input
;
$composerInput
->
setInteractive
(
false
)
;
$helperSet
=
$this
->
getHelperSet
(
)
;
\
assert
(
$helperSet
instanceof HelperSet
)
;
$this
->pluginService->
refreshPlugins
(
Context::
createDefaultContext
(
)
,
new
ConsoleIO
(
$composerInput
,
$output
,
$helperSet
)
)
;
$io
->
success
(
'Plugin list refreshed'
)
;
}
return
self::SUCCESS;
}
}
$composerInput
=
clone
$input
;
$composerInput
->
setInteractive
(
false
)
;
$helperSet
=
$this
->
getHelperSet
(
)
;
\
assert
(
$helperSet
instanceof HelperSet
)
;
$context
= Context::
createDefaultContext
(
)
;
if
(
$input
->
getOption
(
'skip-asset-build'
)
)
{
$context
->
addState
(
PluginLifecycleService::STATE_SKIP_ASSET_BUILDING
)
;
}
$this
->pluginService->
refreshPlugins
(
$context
,
new
ConsoleIO
(
$composerInput
,
$output
,
$helperSet
)
)
;
/** @var EntityCollection<PluginEntity> $plugins */
$plugins
=
$this
->pluginRepository->
search
(
new
Criteria
(
)
,
$context
)
->
getEntities
(
)
;
foreach
(
$plugins
as
$plugin
)
{
if
(
$plugin
->
getUpgradeVersion
(
)
=== null ||
$plugin
->
getActive
(
)
=== false
)
{
continue
;
}
$currentVersion
=
$plugin
->
getVersion
(
)
;
$this
->pluginLifecycleService->
updatePlugin
(
$plugin
,
$context
)
;