PSL 6.3.0
This release adds Type\numeric(), fixes HTTP header validation, and updates the documentation site.
Type System
Type\numeric(): A new type for integers, floats, and numeric strings. It preserves the input’s type, so numeric strings remain strings. Coercion also acceptsStringableobjects whose string value is numeric. (by @gsteel in #793)
use Psl\Type;
Type\numeric()->assert(42); // 42
Type\numeric()->assert(3.14); // 3.14
Type\numeric()->assert('1.23'); // '1.23'Fixes
HTTP\Client: Validates allTransfer-Encodingresponse fields, including repeated fields. Invalid or unsupported transfer codings now raise aProtocolExceptioninstead of falling back toContent-Length. Valid chunked responses still take precedence overContent-Length. (by @azjezz in #806)HTTP\ClientandH2: Reject conflictingContent-Lengthfields in HTTP/1.1 responses and HTTP/2 headers while accepting identical duplicates. (by @azjezz in #800)Dict\diff(): Corrects the PHPDoc value type bound toscalar|null|resource|Stringable, matching the string conversion used for comparisons. Runtime behavior is unchanged. (by @azjezz in #796)
Documentation
- Static pages: The documentation site now serves pre-rendered HTML pages. (by @veewee in #782)
- Section permalinks: Added direct links to section headings (by @erikgaal in #784), with GitHub-style anchors on hover (by @veewee in #785).
- Deployment: Documentation builds now preserve the custom domain across deployments and rebuilds. (by @veewee in #783)
Iter\last_key_opt(): Corrected the description to say that the function returns the last key. (by @klifoth in #803)- Compression guide: Fixed heading formatting. (by @94noni in #801)
Install: composer require php-standard-library/php-standard-library:^6.3
New Contributors
- @erikgaal made their first contribution in #784
- @NickSdot made their first contribution in #790
- @94noni made their first contribution in #801
Full Changelog: 6.2.1...6.3.0