#
bb43a382 |
| 10-Mar-2020 |
Nikita Popov |
Fetch for read in nested property assignments $a->b->c = 'd'; is now compiled the same way as $b = $a->b; $b->c = 'd'; That is, we perform a read f
Fetch for read in nested property assignments $a->b->c = 'd'; is now compiled the same way as $b = $a->b; $b->c = 'd'; That is, we perform a read fetch on $a->b, rather than a write fetch. This is possible, because PHP 8 removed auto-vivification support for objects, so $a->b->c = 'd' may no longer modify $a->b proper (i.e. not counting interior mutability of the object). Closes GH-5250.
show more ...
|
#
66d8d0c7 |
| 17-Mar-2020 |
Christoph M. Becker |
Drop support for iconv without proper errno setting It is hard to impossible to work around iconv() implementations which do not properly set errno according to POSIX. We therefore do n
Drop support for iconv without proper errno setting It is hard to impossible to work around iconv() implementations which do not properly set errno according to POSIX. We therefore do no longer allow to build against such iconv() implementations. Co-Authored-By: Nikita Popov <nikita.ppv@googlemail.com>
show more ...
|
#
1668ad7c |
| 13-Feb-2020 |
Philipp Tanlak |
Add str_contains() function RFC: https://wiki.php.net/rfc/str_contains Closes GH-5179. |
#
0fdffc18 |
| 11-Mar-2020 |
Nikita Popov |
Update Unicode tables to 13.0.0 |
#
fff5771c |
| 03-Mar-2020 |
Nikita Popov |
Require non-absolute trait method refs to be unambiguous Currently, when writing something like class X { use T1, T2 { func as otherFunc; } functi
Require non-absolute trait method refs to be unambiguous Currently, when writing something like class X { use T1, T2 { func as otherFunc; } function func() {} } where both T1::func() and T2::func() exist, we will simply assume that func refers to T1::func(). This is surprising, and it doesn't really make sense that this particular method gets picked. This commit validates that non-absolute method references are unambiguous, i.e. refer to exactly one method. If there is ambiguity, it is required to write T1::func as otherFunc or similar. Closes GH-5232.
show more ...
|
#
ed998f8a |
| 09-Mar-2020 |
Remi Collet |
Fix #50678 files extracted by ZipArchive class lost their original modified time |
#
125724cf |
| 06-Mar-2020 |
Remi Collet |
[ci skip] fix for #72374 is no more a BC break |
#
e786e9c8 |
| 05-Mar-2020 |
Remi Collet |
upgrade information about changs in Zip |
#
336eb48c |
| 06-Feb-2020 |
Nikita Popov |
Automatically implement Stringable interface |
#
531ea6d3 |
| 28-Feb-2020 |
Benjamin Eberlei |
Add upgrading note regarding merge of RFC for new DOMParentNode/DOMChildNode APIs. |
#
aa79a22d |
| 17-Feb-2020 |
Nicolas Oelgart |
Add preg_last_error_msg() function Provides the last PCRE error as a human-readable message, similar to functionality existing in other extensions, such as json_last_error_msg().
Add preg_last_error_msg() function Provides the last PCRE error as a human-readable message, similar to functionality existing in other extensions, such as json_last_error_msg(). Closes GH-5185.
show more ...
|
#
a9398056 |
| 12-Feb-2020 |
Nikita Popov |
Use serialize_precision for var_dump() var_dump() is debugging functionality, so it should print floating-point numbers accurately. We do this by switching to serialize_precision, wh
Use serialize_precision for var_dump() var_dump() is debugging functionality, so it should print floating-point numbers accurately. We do this by switching to serialize_precision, which (by default) will print with as much precision as necessary to preserve the exact value of the float. This also affects debug_zval_dump(). Closes GH-5172.
show more ...
|
#
f0317354 |
| 20-Feb-2020 |
Máté Kocsis |
Update UPGRADING [skip ci] |
#
3b08f53c |
| 09-Jan-2020 |
Nikita Popov |
Deprecate required param after optional As an exception, we allow "Type $foo = null" to occur before a required parameter, because this pattern was used as a replacement for nullable
Deprecate required param after optional As an exception, we allow "Type $foo = null" to occur before a required parameter, because this pattern was used as a replacement for nullable types in PHP versions older than 7.1. Closes GH-5067.
show more ...
|
#
9ca449e0 |
| 21-Jan-2020 |
Christoph M. Becker |
Make quoting of cmd execution functions consistent While the `$command` passed to `proc_open()` had to be wrapped in double-quotes manually, that was implicitly done for all other pr
Make quoting of cmd execution functions consistent While the `$command` passed to `proc_open()` had to be wrapped in double-quotes manually, that was implicitly done for all other program execution functions. This could easily introduce bugs and even security issues when switching from one to another program execution function. Furthermore we ensure that the additional quotes are always unwrapped regardless of what is passed as `$command` by passing the `/s` flag to cmd.exe. As it was, `shell_exec('path with spaces/program.exe')` did execute program.exe, but adding an argument (`shell_exec('path with spaces/program.exe -h)`) failed to execute program.exe, because cmd.exe stripped the additional quotes. While these changes obviously can cause BC breaks, we feel that in the long run the benefits of having consistent behavior for all program execution functions outweighs the drawbacks of potentially breaking some code now.
show more ...
|
#
72bd5590 |
| 06-Feb-2020 |
Nikita Popov |
Improve generated names for anonymous classes In order of preference, the generated name will be: new class extends ParentClass {}; // -> ParentClass@anonymous n
Improve generated names for anonymous classes In order of preference, the generated name will be: new class extends ParentClass {}; // -> ParentClass@anonymous new class implements FirstInterface, SecondInterface {}; // -> FirstInterface@anonymous new class {}; // -> class@anonymous This is intended to display a more useful class name in error messages and stack traces, and thus make debugging easier. Closes GH-5153.
show more ...
|
#
43443857 |
| 07-Jan-2020 |
Nikita Popov |
Add static return type RFC: https://wiki.php.net/rfc/static_return_type The "static" type is represented as MAY_BE_STATIC, rather than a class type like "self" and "parent", as
Add static return type RFC: https://wiki.php.net/rfc/static_return_type The "static" type is represented as MAY_BE_STATIC, rather than a class type like "self" and "parent", as it has special resolution semantics, and cannot be cached in the runtime cache. Closes GH-5062.
show more ...
|
#
d9b80efb |
| 15-Feb-2020 |
Tyson Andre |
[skip ci] Fix typos in UPGRADING Closes GH-5183 |
#
ae2e4b59 |
| 11-Feb-2020 |
Nikita Popov |
Add UPGRADING notes Not listing the details here, I think the RFC is a better reference for the precise technical details. [ci skip] |
#
d9335916 |
| 08-Jan-2020 |
Nikita Popov |
Add support for $obj::class This allows $obj::class, which gives the same result as get_class($obj). Anything other than an object results in TypeError. RFC: https://wiki.php.ne
Add support for $obj::class This allows $obj::class, which gives the same result as get_class($obj). Anything other than an object results in TypeError. RFC: https://wiki.php.net/rfc/class_name_literal_on_object Closes GH-5065.
show more ...
|
#
64b40f69 |
| 07-Feb-2020 |
Dmitry Stogov |
Make ASSIGN, ASSIGN_OP, INC and DEC opcodes to return IS_TMP_VAR instead of IS_VAR. This helps to avoid unnecessary IS_REFERENCE checks. This changes some notices "Only variables should
Make ASSIGN, ASSIGN_OP, INC and DEC opcodes to return IS_TMP_VAR instead of IS_VAR. This helps to avoid unnecessary IS_REFERENCE checks. This changes some notices "Only variables should be passed by reference" to exception "Cannot pass parameter %d by reference". Also, for consistency, compile-time fatal error "Only variables can be passed by reference" was converted to exception "Cannot pass parameter %d by reference"
show more ...
|
#
9f4d1b99 |
| 25-Jan-2020 |
Markus Staab |
Fix typo [ci skip] |
#
300d4df6 |
| 25-Jan-2020 |
George Peter Banyard |
Add mention about empty needles for strrch() functions in UPGRADING [ci skip] |
#
98bfad73 |
| 03-Jan-2020 |
wbender |
Fix bug #64865: Use CONTEXT_DOCUMENT_ROOT for scanning dir tree If CONTEXT_DOCUMENT_ROOT is set use that rather than DOCUMENT_ROOT to scan up the dir tree looking for .user.ini files.
Fix bug #64865: Use CONTEXT_DOCUMENT_ROOT for scanning dir tree If CONTEXT_DOCUMENT_ROOT is set use that rather than DOCUMENT_ROOT to scan up the dir tree looking for .user.ini files. Closes GH-5051.
show more ...
|
#
e72bf636 |
| 06-Jan-2020 |
Nikita Popov |
Allow variadic arguments to replace non-variadic ones Any number of arguments can be replaced by a variadic one, so long as the variadic argument is compatible (in the sense of contr
Allow variadic arguments to replace non-variadic ones Any number of arguments can be replaced by a variadic one, so long as the variadic argument is compatible (in the sense of contravariance) with the subsumed arguments. In particular this means that function(...$args) becomes a near-universal signature: It is compatible with any function signature that does not accept parameters by-reference. This also fixes bug #70839, which describes a special case. Closes GH-5059.
show more ...
|