1<?php 2 3namespace DoctrineExtensions\Types; 4 5use Carbon\Carbon; 6use Doctrine\DBAL\Platforms\AbstractPlatform; 7use Doctrine\DBAL\Types\DateTimeTzType; 8 9class CarbonDateTimeTzType extends DateTimeTzType 10{ 11 const CARBONDATETIMETZ = 'carbondatetimetz'; 12 13 public function getName() 14 { 15 return static::CARBONDATETIMETZ; 16 } 17 18 public function convertToPHPValue($value, AbstractPlatform $platform) 19 { 20 $result = parent::convertToPHPValue($value, $platform); 21 22 if ($result instanceof \DateTime) { 23 return Carbon::instance($result); 24 } 25 26 return $result; 27 } 28 29 public function requiresSQLCommentHint(AbstractPlatform $platform) 30 { 31 return true; 32 } 33} 34