Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
getInitializedConditionals example
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
)
;
}
}
,
function
D
)
use
(
$value
)
: int
{
$count
= 0;
foreach
(
$value
->
getValues
(
)
as
$v
)
{
foreach
(
self::
getServiceConditionals
(
$v
)
as
$s
)
{
// 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
{
$conditions
=
[
]
;
foreach
(
ContainerBuilder::
getInitializedConditionals
(
$value
)
as
$service
)
{
if
(
!
$this
->container->
hasDefinition
(
$service
)
)
{
return
'false';
}
$conditions
[
]
=
sprintf
(
'isset($this->%s[%s])',
$this
->container->
getDefinition
(
$service
)
->
isPublic
(
)
? 'services' : 'privates',
$this
->
doExport
(
$service
)
)
;
}
foreach
(
ContainerBuilder::
getServiceConditionals
(
$value
)
as
$service
)
{
if
(
$this
->container->
hasDefinition
(
$service
)
&& !
$this
->container->
getDefinition
(
$service
)
->
isPublic
(
)
)
{
continue
;
}
$conditions
[
]
=
sprintf
(
'$this->has(%s)',
$this
->
doExport
(
$service
)
)
;
}
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
)
;
}
}
,
function
D
)
use
(
$value
)
: int
{
$count
= 0;
foreach
(
$value
->
getValues
(
)
as
$v
)
{
foreach
(
self::
getServiceConditionals
(
$v
)
as
$s
)
{
// 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
{
$conditions
=
[
]
;
foreach
(
ContainerBuilder::
getInitializedConditionals
(
$value
)
as
$service
)
{
if
(
!
$this
->container->
hasDefinition
(
$service
)
)
{
return
'false';
}
$conditions
[
]
=
sprintf
(
'isset($container->%s[%s])',
$this
->container->
getDefinition
(
$service
)
->
isPublic
(
)
? 'services' : 'privates',
$this
->
doExport
(
$service
)
)
;
}
foreach
(
ContainerBuilder::
getServiceConditionals
(
$value
)
as
$service
)
{
if
(
$this
->container->
hasDefinition
(
$service
)
&& !
$this
->container->
getDefinition
(
$service
)
->
isPublic
(
)
)
{
continue
;
}
$conditions
[
]
=
sprintf
(
'$container->has(%s)',
$this
->
doExport
(
$service
)
)
;
}
// 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
{
$conditions
=
[
]
;
foreach
(
ContainerBuilder::
getInitializedConditionals
(
$value
)
as
$service
)
{
if
(
!
$this
->container->
hasDefinition
(
$service
)
)
{
return
'false';
}
$conditions
[
]
=
sprintf
(
'isset($container->%s[%s])',
$this
->container->
getDefinition
(
$service
)
->
isPublic
(
)
? 'services' : 'privates',
$this
->
doExport
(
$service
)
)
;
}
foreach
(
ContainerBuilder::
getServiceConditionals
(
$value
)
as
$service
)
{
if
(
$this
->container->
hasDefinition
(
$service
)
&& !
$this
->container->
getDefinition
(
$service
)
->
isPublic
(
)
)
{
continue
;
}
$conditions
[
]
=
sprintf
(
'$container->has(%s)',
$this
->
doExport
(
$service
)
)
;
}