在PHP 7中,如果提供的参数具有非预期类型,则可以使用类型声明引发异常。可以将其仅用于允许symfony实体吗?
/**
* @param User|MyOtherEntity $entity
*/
public function serialize(TYPEHINTFORENTITY $entity)
{
$json = json_decode($this->serializer->serialize(
$entity,
'json'
), true);
return $json;
}
public function deserialize($json, string $class): TYPEHINTFORENTITY
{
$entity = $this->serializer->deserialize(
json_encode($json),
'MyBundle\Entity\' . $class,
'json',
DeserializationContext::create()->setGroups(
array('group')
)
);
return $entity;
}
Run Code Online (Sandbox Code Playgroud)
如果我使用相同的功能来序列化不同的实体,则无法使用
public function serialize(User $entity)
Run Code Online (Sandbox Code Playgroud)
因为那将不允许MyOtherEntity的实体进行序列化。