Skip to content

Commit 79cd1d4

Browse files
authored
Merge pull request #1837 from ste93cry/issue-1820
Add support for Doctrine immutable date types
2 parents 5351c26 + 305e330 commit 79cd1d4

File tree

5 files changed

+18
-0
lines changed

5 files changed

+18
-0
lines changed

lib/Gedmo/Timestampable/Mapping/Driver/Annotation.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,13 @@ class Annotation extends AbstractAnnotationDriver
2828
*/
2929
protected $validTypes = array(
3030
'date',
31+
'date_immutable',
3132
'time',
33+
'time_immutable',
3234
'datetime',
35+
'datetime_immutable',
3336
'datetimetz',
37+
'datetimetz_immutable',
3438
'timestamp',
3539
'zenddate',
3640
'vardatetime',

lib/Gedmo/Timestampable/Mapping/Driver/Xml.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,13 @@ class Xml extends BaseXml
2424
*/
2525
private $validTypes = array(
2626
'date',
27+
'date_immutable',
2728
'time',
29+
'time_immutable',
2830
'datetime',
31+
'datetime_immutable',
2932
'datetimetz',
33+
'datetimetz_immutable',
3034
'timestamp',
3135
'zenddate',
3236
'vardatetime',

lib/Gedmo/Timestampable/Mapping/Driver/Yaml.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,13 @@ class Yaml extends File implements Driver
3030
*/
3131
private $validTypes = array(
3232
'date',
33+
'date_immutable',
3334
'time',
35+
'time_immutable',
3436
'datetime',
37+
'datetime_immutable',
3538
'datetimetz',
39+
'datetimetz_immutable',
3640
'timestamp',
3741
'zenddate',
3842
'vardatetime',

lib/Gedmo/Timestampable/Mapping/Event/Adapter/ODM.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ public function getDateValue($meta, $field)
2626
if (isset($mapping['type']) && $mapping['type'] == 'zenddate') {
2727
return new \Zend_Date();
2828
}
29+
if (isset($mapping['type']) && in_array($mapping['type'], array('date_immutable', 'time_immutable', 'datetime_immutable', 'datetimetz_immutable'), true)) {
30+
return new \DateTimeImmutable();
31+
}
2932

3033
return \DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))
3134
->setTimeZone(new \DateTimeZone(date_default_timezone_get()));

lib/Gedmo/Timestampable/Mapping/Event/Adapter/ORM.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ public function getDateValue($meta, $field)
2626
if (isset($mapping['type']) && $mapping['type'] == 'zenddate') {
2727
return new \Zend_Date();
2828
}
29+
if (isset($mapping['type']) && in_array($mapping['type'], array('date_immutable', 'time_immutable', 'datetime_immutable', 'datetimetz_immutable'), true)) {
30+
return new \DateTimeImmutable();
31+
}
2932

3033
return \DateTime::createFromFormat('U.u', number_format(microtime(true), 6, '.', ''))
3134
->setTimeZone(new \DateTimeZone(date_default_timezone_get()));

0 commit comments

Comments
 (0)