#
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 ...
|
#
ea1b8788 |
| 22-Jan-2020 |
Máté Kocsis |
Fix #78969 Make PASSWORD_DEFAULT match PASSWORD_BCRYPT instead of being null It was an unintentional BC break.
|
#
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 ...
|
#
4281c2a9 |
| 22-Jan-2020 |
Máté Kocsis |
Add UPGRADING notes [skip ci]
|
#
7426e3b6 |
| 18-Jan-2020 |
Christoph M. Becker |
Bump required libcurl version to 7.29.0 libcurl 7.29.0 has been released almost eight years ago, so this version is supposed to be available practically everywhere. This bump also a
Bump required libcurl version to 7.29.0 libcurl 7.29.0 has been released almost eight years ago, so this version is supposed to be available practically everywhere. This bump also allows us to get rid of quite some conditional code and tests catering to very old libcurl versions.
show more ...
|
#
f6fbe137 |
| 05-Jan-2020 |
Christoph M. Becker |
Rename run-test.php to run-tests.php in the test packs In the php-src repository, the test runner is named run-tests.php, but when it is copied to the tests packs, it is renamed to run-t
Rename run-test.php to run-tests.php in the test packs In the php-src repository, the test runner is named run-tests.php, but when it is copied to the tests packs, it is renamed to run-test.php. This renaming does not make sense, and is actually somewhat confusing. Although changing the name back to run-tests.php constitutes a BC break, we think the benefit of having a single name outweights the disadvantages in the long run.
show more ...
|
#
03bd4333 |
| 06-Jan-2020 |
Christoph M. Becker |
Add imagegetinterpolation() While `imagesetinterpolation()` is available as of PHP 5.5.0, there is no according getter function, so users would have to track the current interpolatio
Add imagegetinterpolation() While `imagesetinterpolation()` is available as of PHP 5.5.0, there is no according getter function, so users would have to track the current interpolation method manually. To remedy this, we introduce `imagegetinterpolation()` as thin wrapper for `gdImageGetInterpolationMethod()` (which has been introduced with libgd 2.1.1), and use `im->interpolation_id` as fallback for older libgd. Since our bundled libgd does not yet have this function, we add it. We also simplify the recently introduced bug79068.phpt, where it is sufficient to check that the interpolation method has not been changed.
show more ...
|
#
f553e676 |
| 11-Jan-2020 |
Islam Israfilov |
Fixed #78385: Distinguish absent/empty query/fragment http://example.com/foo => query = null, fragment = null http://example.com/foo? => query = "", fragment = null http://examp
Fixed #78385: Distinguish absent/empty query/fragment http://example.com/foo => query = null, fragment = null http://example.com/foo? => query = "", fragment = null http://example.com/foo# => query = null, fragment = "" http://example.com/foo?# => query = "", fragment = "" Closes GH-5078.
show more ...
|
#
66659d6c |
| 08-Jan-2020 |
George Peter Banyard |
[ci skip] Update UPGRADING
|
#
c05a069a |
| 14-Nov-2019 |
Christoph M. Becker |
Fix #78808: [LMDB] MDB_MAP_FULL: Environment mapsize limit reached We implement support for a fifth parameter, which allows to specify the mapsize. The parameter defaults to zero, in wh
Fix #78808: [LMDB] MDB_MAP_FULL: Environment mapsize limit reached We implement support for a fifth parameter, which allows to specify the mapsize. The parameter defaults to zero, in which case the compiled in default mapsize (usually 1048576) will be used. The mapsize should be a multiple of the page size of the OS.
show more ...
|
#
1658b5ba |
| 16-Dec-2019 |
mike |
Adding DateTime(Immutable)::createFromInterface() These are like DateTime::createFromImmutable() DateTimeImmutable::createFromMutable() but accept any DateTimeI
Adding DateTime(Immutable)::createFromInterface() These are like DateTime::createFromImmutable() DateTimeImmutable::createFromMutable() but accept any DateTimeInterface instead. Closes GH-5016.
show more ...
|
#
d8c99025 |
| 31-Oct-2019 |
Nikita Popov |
Implement WeakMap RFC: https://wiki.php.net/rfc/weak_maps
|
#
f13d0a72 |
| 17-Dec-2019 |
Wouter Wijsman |
Add FILTER_VALIDATE_BOOL as alias for FILTER_VALIDATE_BOOLEAN Both filters are equivalent, but FILTER_VALIDATE_BOOL uses our canonical name for the type (the only one permitted in type
Add FILTER_VALIDATE_BOOL as alias for FILTER_VALIDATE_BOOLEAN Both filters are equivalent, but FILTER_VALIDATE_BOOL uses our canonical name for the type (the only one permitted in type declarations for example), so the new name is preferred long term. The old name may be deprecated in the future, but no specific timeline is planned.
show more ...
|
#
39585924 |
| 10-Dec-2019 |
BohwaZ |
Add setAuthorizer method to SQLite3 This adds the possibility to define a userland callback that will be used to authorize or not an action on the database.
|
#
bc231f01 |
| 19-Dec-2019 |
Máté Kocsis |
Add upgrading note about implode() [ci skip]
|