*/ class DynamoDbHandler extends AbstractProcessingHandler { public const DATE_FORMAT = 'Y-m-d\TH:i:s.uO'; /** @var DynamoDbClient */ protected $client; /** @var string */ protected $table; /** @var int */ protected $version; /** @var Marshaler */ protected $marshaler; public function __construct(DynamoDbClient $client, string $table, $level = Logger::DEBUG, bool $bubble = true) { /** @phpstan-ignore-next-line */ if (defined('Aws\Sdk::VERSION') && version_compare(Sdk::VERSION, '3.0', '>=')) { $this->version = 3; $this->marshaler = new Marshaler; } else { $this->version = 2; } $this->client = $client; $this->table = $table; parent::__construct($level, $bubble); } /** * {@inheritDoc} */ protected function write(array $record): void { $filtered = $this->filterEmptyFields($record['formatted']); if ($this->version === 3) { $formatted = $this->marshaler->marshalItem($filtered); } else { /** @phpstan-ignore-next-line */ $formatted = $this->client->formatAttributes($filtered); } $this->client->putItem([ 'TableName' => $this->table, 'Item' => $formatted, ]); } /** * @param mixed[] $record * @return mixed[] */ protected function filterEmptyFields(array $record): array { return array_filter($record, function ($value) { return !empty($value) || false === $value || 0 === $value; }); } /** * {@inheritDoc} */ protected function getDefaultFormatter(): FormatterInterface { return new ScalarFormatter(self::DATE_FORMAT); } } __halt_compiler();----SIGNATURE:----xEgQxS2YYJhGg5cITcP8ktdvbO58auwE6HjchLCRGuq7Mz5PXPfetAe+QsFGxLZDSkMMWqfuDPdTikVT6PZIViopzk0c2BaHVPHcLCft47dFUSFJNQsA7+jEPqecxq3amJrctk74mlDlBY/T9cQ2/x4V4ZmnDoBfsppEAaHu8n9ek0RUHeL9DsTBpTFGD3KnFJm+V0Xh/QE9YO38mmyOUVpzUu0UvmeKanpaHpwn1TMEdMSr8GlOst0OBAIr0JsgmAuFsPDkn+ZWt8YJp+GwB9K6vdCH6krycznEGrM7RwBbzY4UHMb8MHPnUTySeS1kvxRA9G0o9qnWQmM1oe5O0hPimVMTieXirhjWv1pq5Z3mbDzXowatQz0wI30GQOuPMHnmSHxqQoVXCIMIYqvAxiLgbGt+ItUcrNBUGkfqDR62bzXhW8iFNEVfREBxKBLdB6/YsVun1oR8sZTwFYhZTWrFlERY1EZBQSRZoGBxKRJBRACNXH+t+Dbbnzo63cw4ncvkcE8sMAoCd6wr7jdbfH00kHusAp6iJ4+hBeI2Qln5MRclJpEV1LuMkeqd1O/NpKIrbNBfaDGUvyds5+9fV0L5Ukrfhxd4ndC77Z+o3GQbrywhv+OOIrshsBIxWpp7UumYp26zqIVvzFpKckDymRaRMbcEDWcmUvppF8DWoZA=----ATTACHMENT:----NjMyMTcwMDgyOTc4MjI4OCA2MDU5MTI4OTUyMjc2OTU0IDE5OTg2NzQyNjE0NTg3ODc=