Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
1 / 1
DateTimeTransformer
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
3 / 3
4
100.00% covered (success)
100.00%
1 / 1
 supports
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
2
 getDbFormat
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 includesTime
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3declare(strict_types=1);
4
5/** @license For full copyright and license information, please see the LICENSE.md file. */
6
7namespace App\Core\Engine\Application\Transformer;
8
9defined('AMMONLY_APP') || exit('Direct script access is forbidden.');
10
11use App\Core\Engine\Application\Formatter\DateTimeFormatter;
12use App\Core\Engine\Domain\Model\FieldMetadata;
13
14/**
15 * Date & Time Picker UiType Transformer.
16 *
17 * Handles UiTypes: datetime_picker, datetime.
18 * Read: formats datetime according to FieldMetadata display_format configuration.
19 * Write: normalizes to standard Y-m-d H:i:s for SQL DATETIME DB storage.
20 *
21 * @package App\Core\Engine\Application\Transformer
22 */
23final class DateTimeTransformer extends AbstractTemporalTransformer
24{
25    /** @var string Standard database format. */
26    private const string DB_FORMAT = 'Y-m-d H:i:s';
27
28    /** {@inheritdoc} */
29    public function supports(string $uitypeName): bool
30    {
31        return $uitypeName === 'datetime_picker' || $uitypeName === 'datetime';
32    }
33
34    /** {@inheritdoc} */
35    protected function getDbFormat(): string
36    {
37        return self::DB_FORMAT;
38    }
39
40    /** {@inheritdoc} */
41    protected function includesTime(): bool
42    {
43        return true;
44    }
45}