Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
getServiceConditionals example
EOF;
}
return
<<<'EOF' } EOF;
}
private
function
wrapServiceConditionals
(
$value
, string
$code
)
: string
{
if
(
!
$condition
=
$this
->
getServiceConditionals
(
$value
)
)
{
return
$code
;
}
// re-indent the wrapped code
$code
=
implode
(
"\n",
array_map
(
function
D
$line
)
{
return
$line
? ' '.
$line
:
$line
;
}
,
explode
(
"\n",
$code
)
)
)
;
return
sprintf
(
" if (%s) {\n%s }\n",
$condition
,
$code
)
;
}
private
function
getServiceConditionals
(
$value
)
: string
{
private
function
endClass
(
)
: string
{
return
<<<'EOF' } EOF;
}
private
function
wrapServiceConditionals
(
mixed
$value
, string
$code
)
: string
{
if
(
!
$condition
=
$this
->
getServiceConditionals
(
$value
)
)
{
return
$code
;
}
// re-indent the wrapped code
$code
=
implode
(
"\n",
array_map
(
fn
(
$line
)
=>
$line
? ' '.
$line
:
$line
,
explode
(
"\n",
$code
)
)
)
;
return
sprintf
(
" if (%s) {\n%s }\n",
$condition
,
$code
)
;
}
private
function
getServiceConditionals
(
mixed
$value
)
: string
{
if
(
\
is_array
(
$value
)
)
{
foreach
(
$value
as
$k
=>
$v
)
{
$value
[
$k
]
=
$this
->
doResolveServices
(
$v
,
$inlineServices
,
$isConstructorArgument
)
;
}
}
elseif
(
$value
instanceof ServiceClosureArgument
)
{
$reference
=
$value
->
getValues
(
)
[
0
]
;
$value
=
fn
(
)
=>
$this
->
resolveServices
(
$reference
)
;
}
elseif
(
$value
instanceof IteratorArgument
)
{
$value
=
new
RewindableGenerator
(
function
D
)
use
(
$value
, &
$inlineServices
)
{
foreach
(
$value
->
getValues
(
)
as
$k
=>
$v
)
{
foreach
(
self::
getServiceConditionals
(
$v
)
as
$s
)
{
if
(
!
$this
->
has
(
$s
)
)
{
continue
2;
}
}
foreach
(
self::
getInitializedConditionals
(
$v
)
as
$s
)
{
if
(
!
$this
->
doGet
(
$s
, ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE,
$inlineServices
)
)
{
continue
2;
}
}
yield
$k
=>
$this
->
doResolveServices
(
$v
,
$inlineServices
)
;
}
if
(
\
is_array
(
$value
)
)
{
foreach
(
$value
as
$k
=>
$v
)
{
$value
[
$k
]
=
$this
->
doResolveServices
(
$v
,
$inlineServices
,
$isConstructorArgument
)
;
}
}
elseif
(
$value
instanceof ServiceClosureArgument
)
{
$reference
=
$value
->
getValues
(
)
[
0
]
;
$value
=
fn
(
)
=>
$this
->
resolveServices
(
$reference
)
;
}
elseif
(
$value
instanceof IteratorArgument
)
{
$value
=
new
RewindableGenerator
(
function
D
)
use
(
$value
, &
$inlineServices
)
{
foreach
(
$value
->
getValues
(
)
as
$k
=>
$v
)
{
foreach
(
self::
getServiceConditionals
(
$v
)
as
$s
)
{
if
(
!
$this
->
has
(
$s
)
)
{
continue
2;
}
}
foreach
(
self::
getInitializedConditionals
(
$v
)
as
$s
)
{
if
(
!
$this
->
doGet
(
$s
, ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE,
$inlineServices
)
)
{
continue
2;
}
}
yield
$k
=>
$this
->
doResolveServices
(
$v
,
$inlineServices
)
;
}
private
function
endClass
(
)
: string
{
return
<<<'EOF' } EOF;
}
private
function
wrapServiceConditionals
(
mixed
$value
, string
$code
)
: string
{
if
(
!
$condition
=
$this
->
getServiceConditionals
(
$value
)
)
{
return
$code
;
}
// re-indent the wrapped code
$code
=
implode
(
"\n",
array_map
(
fn
(
$line
)
=>
$line
? ' '.
$line
:
$line
,
explode
(
"\n",
$code
)
)
)
;
return
sprintf
(
" if (%s) {\n%s }\n",
$condition
,
$code
)
;
}
private
function
getServiceConditionals
(
mixed
$value
)
: string
{