1
0
mirror of https://github.com/php/php-src.git synced 2026-04-28 10:43:30 +02:00
Commit Graph

1140 Commits

Author SHA1 Message Date
Derick Rethans f3441c832f Merge branch 'PHP-8.1' 2022-05-26 15:19:34 +01:00
Derick Rethans a04eccb294 Merge branch 'PHP-8.0' into PHP-8.1 2022-05-26 15:19:27 +01:00
Derick Rethans 209ea3ffc7 Fixed tests 2022-05-26 14:30:22 +01:00
Derick Rethans 2dcd82162e Fixed bug #72963 (Null-byte injection in CreateFromFormat and related functions) 2022-05-26 13:49:51 +01:00
Derick Rethans dfd1d7a531 Fixed bug #76963 (Null-byte injection in createFromFormat) 2022-05-26 13:49:51 +01:00
George Peter Banyard 862ef7a332 Fix test expectation for date bug 81565 2022-05-20 14:29:46 +01:00
Derick Rethans 7fedb43f15 Merge branch 'PHP-8.1' 2022-05-20 13:25:43 +01:00
Derick Rethans 008016b536 Fixed bug #81565 (date parsing fails when provided with timezones including seconds) 2022-05-20 13:18:43 +01:00
Derick Rethans 78d5076b25 Fixed bug #51987 (Datetime fails to parse an ISO 8601 ordinal date (extended format)) 2022-05-20 13:18:43 +01:00
Derick Rethans 23dbefdb7b Fixed bug #51934 (strtotime plurals / incorrect time) 2022-05-20 13:18:43 +01:00
Derick Rethans 20d8c1bea5 Fixed bug #68549 (Timezones and offsets are not properly used when working with dates) 2022-05-20 13:18:43 +01:00
Derick Rethans ee2776210b Fixed bug #66019 (DateTime object does not support short ISO 8601 time format - YYYY-MM-DDTHH) 2022-05-20 13:18:43 +01:00
Derick Rethans ef55bf7149 Fixed bug GH-7758 (Problems with negative timestamps and fractions) 2022-05-20 13:18:42 +01:00
Derick Rethans b510868bb8 Adjust existing tests for fixed bugs 2022-05-20 13:18:26 +01:00
Derick Rethans 1af354a659 Add extra test case that hase both EXCLUDE_START_DATE and INCLUDE_END_DATE 2022-05-20 11:17:19 +01:00
Derick Rethans 4f1b8f4828 Add serialisation support for the new 'include_end_date' property 2022-05-20 11:17:19 +01:00
Derick Rethans c0c801d238 Fixed bug #52015 (Allow including end date in DatePeriod iterations) 2022-05-20 11:17:19 +01:00
Derick Rethans 1eab5b7970 GH-8458: DateInterval::createFromDateString does not throw non-relative items are present 2022-05-11 13:52:12 +01:00
Derick Rethans 5164f60c88 Merge branch 'PHP-8.1' 2022-05-05 15:24:14 +01:00
Derick Rethans 7670ee4342 Merge branch 'PHP-8.0' into PHP-8.1 2022-05-05 15:24:10 +01:00
Derick Rethans 92f8f19d50 Fixed GH-8471: Segmentation fault when converting immutable and mutable DateTime instances created using reflection 2022-05-05 12:10:50 +01:00
Derick Rethans d54bcbb43b Add DatePeriod's __serialize and __unserialize methods (#8464) 2022-05-03 22:06:17 +01:00
Derick Rethans ef30c9ed98 Update 32-bit only test 2022-04-29 14:19:27 +01:00
Derick Rethans d57b05249c Extended tests 2022-04-29 10:27:40 +01:00
Derick Rethans cae1d4adde Add support for serialising all DateInterval objects 2022-04-29 10:27:40 +01:00
Derick Rethans c8a6a8abc0 Rename have_special_relative to from_string, fix serialisation constraint, and reorder fields 2022-04-29 10:27:40 +01:00
Derick Rethans c280121b72 Add a few test cases for DateInterval 2022-04-29 10:27:40 +01:00
Derick Rethans f4e5010aa9 Show the 'have_special_relative' property in var_dumps, and disallow serialization if set 2022-04-29 10:27:40 +01:00
Derick Rethans 3be8b5f5cb Remove fake properties from DateInterval 2022-04-29 10:26:50 +01:00
Derick Rethans 181623f9c0 Add DateTimeZone's __serialize and __unserialize methods 2022-04-29 09:44:27 +01:00
Derick Rethans 8b2ee5388c Add DateTime/DateTimeImmutable's __serialize and __unserialize methods 2022-04-29 09:44:27 +01:00
Marco Pivetta 25cb9cdb79 Fix GH-8232 - always reference classes in var_export() via their FQCN
Closes GH-8233

This fix corrects a behavior of `var_export()` that was mostly "hidden" until PHP 8.1 introduced:

* properties with object initializers
* constants containing object references
* default values of class properties containing `enum`s

Since `var_export(..., true)` is mostly used in conjunction with code generation,
and we cannot make assumptions about the generated code being placed in the root
namespace, we must always provide the FQCN of a class in exported code.

For example:

```php
<?php

namespace MyNamespace { class Foo {} }

namespace { echo "<?php\n\nnamespace Example;\n\n" . var_export(new \MyNamespace\Foo(), true) . ';'; }
```

produces:

```php
<?php

namespace Example;

MyNamespace\Foo::__set_state(array(
));
```

This code snippet is invalid, because `Example\MyNamespace\Foo::__set_state()` (which
does not exist) is called.

With this patch applied, the code looks like following (valid):

```php
<?php

namespace Example;

\MyNamespace\Foo::__set_state(array(
));
```

Ref: https://github.com/php/php-src/issues/8232
Ref: https://github.com/Ocramius/ProxyManager/issues/754
Ref: https://externals.io/message/117466
2022-04-23 11:06:21 +02:00
Derick Rethans a690a56a86 Merge branch 'PHP-8.1' 2022-04-22 10:31:22 +01:00
Derick Rethans 15ee285f83 Merge branch 'PHP-8.0' into PHP-8.1 2022-04-22 10:31:14 +01:00
Derick Rethans c854bb2472 Fixed GH-8400: bug73837.phpt makes no sense
Replaces the indeed silly test with something that actually does the job,
albeit much slower.
2022-04-22 10:29:37 +01:00
Derick Rethans 731e3f6c96 Merge branch 'PHP-8.1' 2022-04-14 10:32:25 +01:00
Derick Rethans ec0771c03f Merge branch 'PHP-8.0' into PHP-8.1 2022-04-14 10:32:21 +01:00
Derick Rethans e38d300a70 Refactor code to avoid duplication 2022-04-14 10:32:10 +01:00
Cody Mann 287c8a86b4 GH-7979: iterator advances when checking if valid 2022-04-14 10:22:00 +01:00
Derick Rethans cd6c338c89 Merge branch 'PHP-8.1' 2022-04-01 13:28:13 +01:00
Derick Rethans e6c4988187 Fixed #7752, #8101, #81660: DateTimeZone::getTransitions() returns insufficient data 2022-04-01 13:28:05 +01:00
Nikita Popov 902d64390e Deprecate implicit dynamic properties
Writing to a proprety that hasn't been declared is deprecated,
unless the class uses the #[AllowDynamicProperties] attribute or
defines __get()/__set().

RFC: https://wiki.php.net/rfc/deprecate_dynamic_properties
2021-11-26 14:10:11 +01:00
Derick Rethans f893b55123 Merge branch 'PHP-8.1' 2021-11-18 13:56:07 +00:00
Derick Rethans e4679ef0c2 Fixed date/diff where the difference in hour is less than 1 2021-11-18 13:55:51 +00:00
Derick Rethans 369ab3b53e Merge branch 'PHP-8.1' 2021-11-08 09:40:41 +00:00
Derick Rethans 904933e918 Fixed bug #81458: Regression: Incorrect difference after timezone change 2021-11-08 09:40:27 +00:00
Christoph M. Becker b7d90f09d4 Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix #81500: Interval serialization regression since 7.3.14 / 7.4.2
2021-10-15 19:14:00 +02:00
Christoph M. Becker 2e65c8e581 Merge branch 'PHP-8.0' into PHP-8.1
* PHP-8.0:
  Fix #81500: Interval serialization regression since 7.3.14 / 7.4.2
2021-10-15 19:13:38 +02:00
Christoph M. Becker fc886694d3 Merge branch 'PHP-7.4' into PHP-8.0
* PHP-7.4:
  Fix #81500: Interval serialization regression since 7.3.14 / 7.4.2
2021-10-15 19:11:26 +02:00
Christoph M. Becker 866adb122a Fix #81500: Interval serialization regression since 7.3.14 / 7.4.2
While it may not be desired, `DateInterval::$f` supports negative
values, at least with regard to calculations.  We still need to guard
from assigning double values which are out of range for signed 64bit
integers (which would be undefined behavior).  zend_dval_to_lval() does
this by returning `0` instead of triggering UB.  This way we can avoid
setting the invalid marker, which doesn't work as expected anyway.

We must not do that only for unserialization, but also when the property
is set in the first place.

We need to adapt some of the existing tests wrt. this behavior.  In
particular, we check for an arbitrary value in bug79015.phpt, to cater
to differences between 32bit and 64bit architectures.

Closes GH-7575.
2021-10-15 19:08:07 +02:00