#
47cf18ba |
| 15-Feb-2020 |
Nikita Popov |
Don't include trailing newline in comment token Don't include a trailing newline in T_COMMENT tokens, instead leave it for a following T_WHITESPACE token. The newline does not belong
Don't include trailing newline in comment token Don't include a trailing newline in T_COMMENT tokens, instead leave it for a following T_WHITESPACE token. The newline does not belong to the comment logically, and this makes for an ugly special case, as other tokens do not include trailing newlines. Whitespace-sensitive tooling will want to either forward or backward emulate this change. Closes GH-5182.
show more ...
|
#
e12b9df0 |
| 04-Mar-2020 |
Nikita Popov |
Make sorting stable Make user-exposed sorts stable, by storing the position of elements in the original array, and using those positions as a fallback comparison criterion. The base
Make sorting stable Make user-exposed sorts stable, by storing the position of elements in the original array, and using those positions as a fallback comparison criterion. The base sort is still hybrid q/insert. The use of true/false comparison functions is deprecated (but still supported) and should be replaced by -1/0/1 comparison functions, driven by the <=> operator. RFC: https://wiki.php.net/rfc/stable_sorting Closes GH-5236.
show more ...
|
#
ff19ec2d |
| 26-Feb-2020 |
Nikita Popov |
Introduce InternalIterator Userland classes that implement Traversable must do so either through Iterator or IteratorAggregate. The same requirement does not exist for internal class
Introduce InternalIterator Userland classes that implement Traversable must do so either through Iterator or IteratorAggregate. The same requirement does not exist for internal classes: They can implement the internal get_iterator mechanism, without exposing either the Iterator or IteratorAggregate APIs. This makes them usable in get_iterator(), but incompatible with any Iterator based APIs. A lot of internal classes do this, because exposing the userland APIs is simply a lot of work. This patch alleviates this issue by providing a generic InternalIterator class, which acts as an adapater between get_iterator and Iterator, and can be easily used by many internal classes. At the same time, we extend the requirement that Traversable implies Iterator or IteratorAggregate to internal classes as well. Closes GH-5216.
show more ...
|
#
4730b06f |
| 04-Mar-2020 |
Nikita Popov |
Make SimpleXMLElement a RecursiveIterator Context: https://externals.io/message/108789 This essentially moves the functionality of SimpleXMLIterator into SimpleXMLElement, and m
Make SimpleXMLElement a RecursiveIterator Context: https://externals.io/message/108789 This essentially moves the functionality of SimpleXMLIterator into SimpleXMLElement, and makes SimpleXMLIterator a no-op extension. Ideally SimpleXMLElement would be an IteratorAggregate, whose getIterator() method returns SimpleXMLIterator. However, because SimpleXMLIterator extends SimpleXMLElement (and code depends on this in non-trivial ways), this is not possible. The only way to not keep SimpleXMLElement as a magic Traversable (that implements neither Iterator nor IteratorAggregate) is to move the SimpleXMLIterator functionality into it. Closes GH-5234.
show more ...
|
#
18f58080 |
| 08-Jun-2020 |
Christoph M. Becker |
Convert shmop resources to opaque objects We make `shmop_close()` a NOP, and deprecate the function right away; detaching from SHM now happens when the wrapper object is freed.
|
#
d579b10c |
| 24-Jun-2020 |
Nikita Popov |
Remove deprecated DES fallback in crypt()
|
#
f3b1f342 |
| 20-Jun-2020 |
Máté Kocsis |
Deprecate the procedural API of ext/zip Closes GH-5746
|
#
a43fd3bb |
| 18-Jun-2020 |
Máté Kocsis |
Remove the deprecated parameter of curl_version()
|
#
314eedbc |
| 17-Jun-2020 |
Máté Kocsis |
Convert resources to objects in ext/zlib Closes GH-5680
|
#
b516566b |
| 17-Jun-2020 |
Máté Kocsis |
Convert CURL resources to objects Closes GH-5402 Co-authored-by: Nikita Popov <nikita.ppv@gmail.com>
|
#
2e18b30d |
| 16-Jun-2020 |
Máté Kocsis |
Convert resource to object in Sysvshm extension Closes GH-5499
|
#
367c55ff |
| 07-Jun-2020 |
Jakub Zelenka |
Update NEWS and UPGRADING for the OpenSSL ext CMS addition
|
#
7439941d |
| 30-May-2020 |
Gabriel Caruso |
Add $filter parameter for ReflectionClass::(getConstants|getReflectionConstants) This solves [#79628](https://bugs.php.net/79628). Similar to `ReflectionClass::getMethods()` and `Re
Add $filter parameter for ReflectionClass::(getConstants|getReflectionConstants) This solves [#79628](https://bugs.php.net/79628). Similar to `ReflectionClass::getMethods()` and `ReflectionClass::getProperties()`, this new `$filter` argument allows the filtering of constants defined in a class by their visibility. For that, we create three new constants for `ReflectionClassConstant`: * `IS_PUBLIC` * `IS_PROTECTED` * `IS_PRIVATE` Closes GH-5649.
show more ...
|
#
064b4644 |
| 24-Mar-2020 |
Nikita Popov |
Implement "Constructor Promotion" RFC RFC: https://wiki.php.net/rfc/constructor_promotion Closes GH-5291.
|
#
1622d22c |
| 04-Jun-2020 |
Benjamin Eberlei |
Add upgrading note for Attributes RFC [ci-skip]
|
#
eeb7a7cd |
| 31-May-2020 |
Nikita Popov |
Add UPGRADING note for pty support [ci skip]
|
#
393cd89f |
| 31-May-2020 |
Nikita Popov |
Add UPGRADING note for xmlrpc unbundling And drop other UPGRADING references to xmlrpc. I don't think it makes sense to have those for extensions that are no longer shipped...
Add UPGRADING note for xmlrpc unbundling And drop other UPGRADING references to xmlrpc. I don't think it makes sense to have those for extensions that are no longer shipped... [ci skip]
show more ...
|
#
d7f17ea4 |
| 31-May-2020 |
Nikita Popov |
Fix some line overruns in UPGRADING [ci skip]
|
#
805e3e3a |
| 31-May-2020 |
Nikita Popov |
Move upgrading note for mixed This should be in the "new features" section. [ci skip]
|
#
2302b14a |
| 26-Mar-2020 |
George Peter Banyard |
Use ZPP callable check for spl_autoload_register. This makes it always throw a TypeError, moreover this makes the error message consistent. Added a warning mentioning that the s
Use ZPP callable check for spl_autoload_register. This makes it always throw a TypeError, moreover this makes the error message consistent. Added a warning mentioning that the second parameter is now ignored when passed false. Closes GH-5301
show more ...
|
#
444aa263 |
| 29-May-2020 |
Máté Kocsis |
Add upgrading notes about the deprecated functionality in ext/enchant [skip ci]
|
#
cd3e04df |
| 15-May-2020 |
Máté Kocsis |
Convert enchant resources to opaque objects Additionally, deprecate ENCHANT_MYSPELL and ENCHANT_ISPELL constants. Closes GH-5577 Co-authored-by: Remi Collet <remi@php.net>
|
#
cc27781f |
| 29-Apr-2020 |
Tyson Andre |
[RFC] Always enable JSON support in php 8.0 Currently, it's possible to disable the json extension with `./configure --disable-json` (for historical reasons that no longer apply). Ho
[RFC] Always enable JSON support in php 8.0 Currently, it's possible to disable the json extension with `./configure --disable-json` (for historical reasons that no longer apply). However, JSON is widely used in many use cases - web sites, logging output, and as a data format that can be used to share data with many applications and programming languages, so I'd personally find it useful if it was always enabled. Examples of where this would be useful: - For internal classes to be able to implement `JsonSerializable` which currently requires a hard dependency on the JSON extension. - For PHP users to publish single-file scripts that use json_encode and json_decode and don't require polyfills or less readable var_export output. (polyfills are less efficient and may have issues with recursive data structures) - So that php-src's own modules, tools and test cases can start using JSON if it's a good choice for encoding a value. (same for PECLs) https://wiki.php.net/rfc/jsond mentions that in PHP 5, > The current Json Parser in the json extension does not have a free license > which is a problem for many Linux distros. > This has been referenced at Bug #63520. > That results in not packaging json extension in the many Linux distributions. Starting in php 7.0 with the switch to jsond, It looks like licensing is no longer an issue. Changes: - Remove all flags related to JSON such as `configure --disable-json` - Require that JSON be compiled statically instead of as a shared library Examples of uses of JSON in various distros (backwards incompatible changes such as changing packaging are typically reserved for major versions, and 8.0 is a major version) - JSON is required by `php-cli` or `php` in ubuntu: https://packages.ubuntu.com/focal/php/ - The php-json package has to be installed separately from the PHP binary in Fedora repos. Closes GH-5495
show more ...
|
#
0221b8b2 |
| 21-Apr-2020 |
Nikita Popov |
Add support for * width and precision in printf() If * is used for width/precision in printf, then the width/precision is provided by a printf argument instead of being part of the forma
Add support for * width and precision in printf() If * is used for width/precision in printf, then the width/precision is provided by a printf argument instead of being part of the format string. Semantics generally match those of printf in C. This can be used to easily reproduce PHP's float printing behavior: // Locale-sensitive using precision ini setting. // Used prior to PHP 8.0. sprintf("%.*G", (int) ini_get('precision'), $float); // Locale-insensitive using precision ini setting. // Used since to PHP 8.0. sprintf("%.*H", (int) ini_get('precision'), $float); // Locale-insensitive using serialize_precision ini setting. // Used in serialize(), json_encode() etc. sprintf("%.*H", (int) ini_get('serialize_precision'), $float); Closes GH-5432.
show more ...
|
#
b6000b7e |
| 22-Apr-2020 |
Nikita Popov |
Add support for %h and %H in printf() These are locale-independent variants of %g and %G. Closes GH-5436.
|