Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
getMappedObjectType example
return
$this
->mappingForMappedObjectCache
[
$cacheKey
]
;
}
public
function
getTypeForMappedObject
(
object|string
$object
)
: ?string
{
if
(
null ===
$mapping
=
$this
->
getMappingForMappedObject
(
$object
)
)
{
return
null;
}
return
$mapping
->
getMappedObjectType
(
$object
)
;
}
private
function
resolveMappingForMappedObject
(
object|string
$object
)
: ?ClassDiscriminatorMapping
{
$reflectionClass
=
new
\
ReflectionClass
(
$object
)
;
if
(
$parentClass
=
$reflectionClass
->
getParentClass
(
)
)
{
if
(
null
!==
(
$parentMapping
=
$this
->
getMappingForMappedObject
(
$parentClass
->
getName
(
)
)
)
)
{
return
$parentMapping
;
}
}
return
$this
->mappingForMappedObjectCache
[
$cacheKey
]
;
}
public
function
getTypeForMappedObject
(
object|string
$object
)
: ?string
{
if
(
null ===
$mapping
=
$this
->
getMappingForMappedObject
(
$object
)
)
{
return
null;
}
return
$mapping
->
getMappedObjectType
(
$object
)
;
}
private
function
resolveMappingForMappedObject
(
object|string
$object
)
: ?ClassDiscriminatorMapping
{
$reflectionClass
=
new
\
ReflectionClass
(
$object
)
;
if
(
$parentClass
=
$reflectionClass
->
getParentClass
(
)
)
{
return
$this
->
getMappingForMappedObject
(
$parentClass
->
getName
(
)
)
;
}
foreach
(
$reflectionClass
->
getInterfaceNames
(
)
as
$interfaceName
)
{
if
(
null
!==
(
$interfaceMapping
=
$this
->
getMappingForMappedObject
(
$interfaceName
)
)
)
{
$this
->
assertEquals
(
AbstractDummyFirstChild::
class
,
$mapping
->
getClassForType
(
'first'
)
)
;
$this
->
assertNull
(
$mapping
->
getClassForType
(
'second'
)
)
;
}
public
function
testMappedObjectType
(
)
{
$mapping
=
new
ClassDiscriminatorMapping
(
'type',
[
'first' => AbstractDummyFirstChild::
class
,
'third' => AbstractDummyThirdChild::
class
,
]
)
;
$this
->
assertEquals
(
'first',
$mapping
->
getMappedObjectType
(
AbstractDummyFirstChild::
class
)
)
;
$this
->
assertEquals
(
'first',
$mapping
->
getMappedObjectType
(
new
AbstractDummyFirstChild
(
)
)
)
;
$this
->
assertNull
(
$mapping
->
getMappedObjectType
(
new
AbstractDummySecondChild
(
)
)
)
;
$this
->
assertSame
(
'third',
$mapping
->
getMappedObjectType
(
new
AbstractDummyThirdChild
(
)
)
)
;
}
}