From cf357e97ffa2d9ceaf19b97846099116348f015f Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Thu, 8 May 2025 07:28:31 +0300 Subject: [PATCH 1/5] serialize.xml Show how the method works --- .../datetime/datetimeinterface/serialize.xml | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/reference/datetime/datetimeinterface/serialize.xml b/reference/datetime/datetimeinterface/serialize.xml index 5615dca18157..c6a322b8955a 100644 --- a/reference/datetime/datetimeinterface/serialize.xml +++ b/reference/datetime/datetimeinterface/serialize.xml @@ -43,19 +43,35 @@ &reftitle.examples; - <function>DateTime::serialize</function> example + <methodname>DateTime::__serialize</methodname> example $this->format(DateTimeInterface::W3C), + 'timestamp' => $this->getTimestamp(), + 'timezone' => $this->getTimeZone()->getName(), + 'to' => 'Drink a cup of coffee', + ]; + } +} + +$date = new CustomDateTimeImmutable('2025-03-27'); var_dump(serialize($date)); + ?> ]]> &examples.outputs; From e9148ffe9fa213c744e2cff7425a31cfb330e743 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Thu, 8 May 2025 08:21:39 +0300 Subject: [PATCH 2/5] serialize.xml Add an Error warning if __unserialize() is missing --- reference/datetime/datetimeinterface/serialize.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/reference/datetime/datetimeinterface/serialize.xml b/reference/datetime/datetimeinterface/serialize.xml index c6a322b8955a..0a6934b9b630 100644 --- a/reference/datetime/datetimeinterface/serialize.xml +++ b/reference/datetime/datetimeinterface/serialize.xml @@ -77,6 +77,17 @@ string(171) "O:23:"CustomDateTimeImmutable":4:{s:4:"date";s:25:"2025-03-27T00:00 + + &reftitle.notes; + + + An Error is thrown when attempting to unserialize a custom + DateTime object if the __serialize() is + defined but the __unserialize() is missing. + + + + &reftitle.seealso; From 04de2dfc32eba621c8ea9631955c136a3d820c20 Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Thu, 8 May 2025 08:23:53 +0300 Subject: [PATCH 3/5] unserialize.xml Show how the method works --- .../datetimeinterface/unserialize.xml | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/reference/datetime/datetimeinterface/unserialize.xml b/reference/datetime/datetimeinterface/unserialize.xml index f60f36c4bb9e..2aea9acf4a60 100644 --- a/reference/datetime/datetimeinterface/unserialize.xml +++ b/reference/datetime/datetimeinterface/unserialize.xml @@ -51,12 +51,26 @@ &reftitle.examples; - <function>DateTime::unserialize</function> example + <methodname>DateTime::__unserialize</methodname> example __construct($data['date'], new DateTimeZone($data['timezone'])); + } +} + +$serializedData = 'O:23:"CustomDateTimeImmutable":4:{s:4:"date";s:25:"2025-03-27T00:00:00+00:00";s:9:"timestamp";i:1743033600;s:8:"timezone";s:3:"UTC";s:2:"to";s:21:"Drink a cup of coffee";}'; + +var_dump(unserialize($serializedData)); + ?> ]]> From b9af72fa11aa94cafeca56e79bb430bf9234814e Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Thu, 8 May 2025 08:30:50 +0300 Subject: [PATCH 4/5] unserialize.xml No value is returned --- reference/datetime/datetimeinterface/unserialize.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/datetime/datetimeinterface/unserialize.xml b/reference/datetime/datetimeinterface/unserialize.xml index 2aea9acf4a60..1e419cd63f0b 100644 --- a/reference/datetime/datetimeinterface/unserialize.xml +++ b/reference/datetime/datetimeinterface/unserialize.xml @@ -44,7 +44,7 @@ &reftitle.returnvalues; - The DateTime object. + &return.void; From 46396388653c9d0295282d68580a8c9f560d077e Mon Sep 17 00:00:00 2001 From: Mikhail Alferov Date: Thu, 8 May 2025 08:38:14 +0300 Subject: [PATCH 5/5] unserialize.xml Add an Error warning --- reference/datetime/datetimeinterface/unserialize.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/reference/datetime/datetimeinterface/unserialize.xml b/reference/datetime/datetimeinterface/unserialize.xml index 1e419cd63f0b..d33005a44b91 100644 --- a/reference/datetime/datetimeinterface/unserialize.xml +++ b/reference/datetime/datetimeinterface/unserialize.xml @@ -90,6 +90,17 @@ object(DateTime)#1 (3) { + + &reftitle.notes; + + + An Error is thrown when attempting to unserialize a custom + DateTime object if the __serialize() is + defined but the __unserialize() is missing. + + + + &reftitle.seealso;