UTCDateTimeType::getUtc()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
nc 2
nop 0
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
declare(strict_types=1);
3
/**
4
 * Created by PhpStorm.
5
 * User: benedikt
6
 * Date: 1/2/18
7
 * Time: 9:22 PM
8
 */
9
10
namespace Tfboe\FmLib\Entity\Helpers;
11
12
use Doctrine\DBAL\Platforms\AbstractPlatform;
13
use Doctrine\DBAL\Types\DateTimeType;
14
15
/**
16
 * Class UTCDateTimeType
17
 * @package Tfboe\FmLib\Entity\Helpers
18
 */
19
class UTCDateTimeType extends DateTimeType
20
{
21
//<editor-fold desc="Fields">
22
  static private $utc;
23
//</editor-fold desc="Fields">
24
25
//<editor-fold desc="Public Methods">
26
  /**
27
   * {@inheritdoc}
28
   */
29
  public function convertToDatabaseValue($value, AbstractPlatform $platform)
30
  {
31
    if ($value instanceof \DateTime) {
32
      $value = clone $value;
33
      $value->setTimezone(self::getUtc());
34
    }
35
36
    return parent::convertToDatabaseValue($value, $platform);
37
  }
38
//</editor-fold desc="Public Methods">
39
40
//<editor-fold desc="Private Methods">
41
  /**
42
   * Gets the utc datetime zone
43
   * @return \DateTimeZone
44
   */
45
  private static function getUtc(): \DateTimeZone
46
  {
47
    return self::$utc ? self::$utc : self::$utc = new \DateTimeZone('UTC');
48
  }
49
//</editor-fold desc="Private Methods">
50
}