NormalizerBase.php in JSON:API 8
File
src/Normalizer/NormalizerBase.php
View source
<?php
namespace Drupal\jsonapi\Normalizer;
use Drupal\serialization\Normalizer\NormalizerBase as SerializationNormalizerBase;
abstract class NormalizerBase extends SerializationNormalizerBase {
protected $formats = [
'api_json',
];
public function supportsNormalization($data, $format = NULL) {
return in_array($format, $this->formats, TRUE) && parent::supportsNormalization($data, $format);
}
public function supportsDenormalization($data, $type, $format = NULL) {
if (in_array($format, $this->formats, TRUE) && (class_exists($this->supportedInterfaceOrClass) || interface_exists($this->supportedInterfaceOrClass))) {
$target = new \ReflectionClass($type);
$supported = new \ReflectionClass($this->supportedInterfaceOrClass);
if ($supported
->isInterface()) {
return $target
->implementsInterface($this->supportedInterfaceOrClass);
}
else {
return $target
->getName() == $this->supportedInterfaceOrClass || $target
->isSubclassOf($this->supportedInterfaceOrClass);
}
}
return FALSE;
}
}