for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace TgBotApi\BotApiBase\Normalizer;
use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
use Symfony\Component\Serializer\Serializer;
use TgBotApi\BotApiBase\Type\ForceReplyType;
use TgBotApi\BotApiBase\Type\InlineKeyboardMarkupType;
use TgBotApi\BotApiBase\Type\MaskPositionType;
use TgBotApi\BotApiBase\Type\ReplyKeyboardMarkupType;
use TgBotApi\BotApiBase\Type\ReplyKeyboardRemoveType;
class JsonSerializableNormalizer implements NormalizerInterface
{
private $objectNormalizer;
public function __construct(NormalizerInterface $objectNormalizer)
$this->objectNormalizer = $objectNormalizer;
}
public function normalize($topic, $format = null, array $context = [])
$serializer = new Serializer([$this->objectNormalizer]);
return \json_encode($serializer->normalize($topic, null, ['skip_null_values' => true]));
public function supportsNormalization($data, $format = null)
return $data instanceof InlineKeyboardMarkupType ||
$data instanceof ReplyKeyboardMarkupType ||
$data instanceof ReplyKeyboardRemoveType ||
$data instanceof MaskPositionType ||
$data instanceof ForceReplyType;