Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
validateProvidedTypes example
$bag
=
$container
->
getParameterBag
(
)
;
$types
=
[
]
;
$processors
=
[
]
;
foreach
(
$container
->
findTaggedServiceIds
(
'container.env_var_processor'
)
as
$id
=>
$tags
)
{
if
(
!
$r
=
$container
->
getReflectionClass
(
$class
=
$container
->
getDefinition
(
$id
)
->
getClass
(
)
)
)
{
throw
new
InvalidArgumentException
(
sprintf
(
'Class "%s" used for service "%s" cannot be found.',
$class
,
$id
)
)
;
}
elseif
(
!
$r
->
isSubclassOf
(
EnvVarProcessorInterface::
class
)
)
{
throw
new
InvalidArgumentException
(
sprintf
(
'Service "%s" must implement interface "%s".',
$id
, EnvVarProcessorInterface::
class
)
)
;
}
foreach
(
$class
::
getProvidedTypes
(
)
as
$prefix
=>
$type
)
{
$processors
[
$prefix
]
=
new
Reference
(
$id
)
;
$types
[
$prefix
]
= self::
validateProvidedTypes
(
$type
,
$class
)
;
}
}
if
(
$bag
instanceof EnvPlaceholderParameterBag
)
{
foreach
(
EnvVarProcessor::
getProvidedTypes
(
)
as
$prefix
=>
$type
)
{
if
(
!
isset
(
$types
[
$prefix
]
)
)
{
$types
[
$prefix
]
= self::
validateProvidedTypes
(
$type
, EnvVarProcessor::
class
)
;
}
}
$bag
->
setProvidedTypes
(
$types
)
;
}
$bag
=
$container
->
getParameterBag
(
)
;
$types
=
[
]
;
$processors
=
[
]
;
foreach
(
$container
->
findTaggedServiceIds
(
'container.env_var_processor'
)
as
$id
=>
$tags
)
{
if
(
!
$r
=
$container
->
getReflectionClass
(
$class
=
$container
->
getDefinition
(
$id
)
->
getClass
(
)
)
)
{
throw
new
InvalidArgumentException
(
sprintf
(
'Class "%s" used for service "%s" cannot be found.',
$class
,
$id
)
)
;
}
elseif
(
!
$r
->
isSubclassOf
(
EnvVarProcessorInterface::
class
)
)
{
throw
new
InvalidArgumentException
(
sprintf
(
'Service "%s" must implement interface "%s".',
$id
, EnvVarProcessorInterface::
class
)
)
;
}
foreach
(
$class
::
getProvidedTypes
(
)
as
$prefix
=>
$type
)
{
$processors
[
$prefix
]
=
new
Reference
(
$id
)
;
$types
[
$prefix
]
= self::
validateProvidedTypes
(
$type
,
$class
)
;
}
}
if
(
$bag
instanceof EnvPlaceholderParameterBag
)
{
foreach
(
EnvVarProcessor::
getProvidedTypes
(
)
as
$prefix
=>
$type
)
{
if
(
!
isset
(
$types
[
$prefix
]
)
)
{
$types
[
$prefix
]
= self::
validateProvidedTypes
(
$type
, EnvVarProcessor::
class
)
;
}
}
$bag
->
setProvidedTypes
(
$types
)
;
}