What's Changed (tl;dr)
- Compatibility with PHP 8.4 - no more syntax deprecation warnings
- Dropped support for EOL'ed PHP versions - PHP 8.1 is the new minimum
- Separate wrappers generated for each PHP version, to make sure that the wrappers match the standard library whether you're using 8.1 or 8.4
- Lots more unsafe functions are detected (including those which return
-1
on error) - Type hints should be more expansive and more accurate
- Internals cleaned up and documentation added, to make the project easier to contribute to
What's Changed (Full)
- Change misspelled occured to occurred by @spawnia in #416
- Remove dev-master aliases by @shish in #463
- Add dependabot config by @shish in #459
- Add devcontainer config by @shish in #458
- Update CI/CD workflows by @shish in #460
- Bring lib/ up to php8.4 standards by @shish in #466
- Bring deprecated override files up to php8.4 syntax by @shish in #464
- Add auto-regenerate CI workflow by @shish in #461
- Use less-old phpstan by @shish in #462
- Skip
json_last_error
check whenJSON_THROW_ON_ERROR
flag is set injson_decode
by @marmichalski in #451 - CI: disable fail-fast so we see all results by @staabm in #469
- Require PHP 8.1 by @simPod in #433
- Remove Travis CI badge from README by @staabm in #472
- fix named arg w json_decode to be consistent with php by @staabm in #473
- Drop double \ from parameter types by @WyriHaximus in #445
- Add custom base64_decode fcn mapping by @simPod in #431
- Fix typo in "signatures" by @simPod in #429
- Update testDetectFalsyFunction by @simPod in #432
- Update symfony dependencies by @staabm in #475
- remove no-longer-needed workaround by @shish in #477
- Force generator to use PHP 8.1.x by @staabm in #476
- Fix regex matching for removed functions by @shish in #483
- Fix file scanning by @shish in #485
- Constructor property promotions by @shish in #482
- enable strict_types in generator by @shish in #481
- Fix unit tests by @shish in #488
- Detect nullable-default parameters and generate appropriate outputs by @shish in #486
- Handle more PHPStan type edge-cases by @shish in #487
- make build.sh more accurately match what the github workflow does by @shish in #491
- Added lint in github actions by @staabm in #493
- PHPStan: enable bleeding edge by @staabm in #494
- Misc smaller changes by @shish in #492
- Regenerate files based on latest code changes by @shish in #489
- Convert "true" typehint to "bool" by @shish in #497
- Create FUNDING.yml by @staabm in #496
- detect inet_pton by @shish in #498
- Automatically regenerate the files by @github-actions in #478
- Generate code which better matches our formatting standards by @shish in #501
- support union type from php documentation by @smoench in #506
- Automatically regenerate the files by @github-actions in #505
- Automatically regenerate the files by @github-actions in #507
- Automatically regenerate the files by @github-actions in #509
- fix unit tests by @shish in #513
- remove $ so cut-and-paste works by @tacman in #514
- [generator] make import tests into a unit test by @shish in #517
- [docker] mark doc directories as safe for git to use by @shish in #516
- [docker] exit early if build fails by @shish in #515
- [generator] make import tests into a unit test by @shish in #512
- [docker] mark doc directories as safe for git to use by @shish in #511
- fix openssl_encrypt special case signature by @shish in #518
- Remove APC bits by @shish in #519
- Automatically regenerate the files by @github-actions in #520
- Re-sync generator/config/specialCasesFunctions.php by @shish in #521
- [ci] split "Regenerate files" and "check for differences" into two steps by @shish in #524
- [ci] also split steps for auto-regen workflow by @shish in #525
- [ci] fetch full history for php docs by @shish in #526
- [auto-regenerate] fetch full history for docs by @shish in #527
- Automatically regenerate the files by @github-actions in #532
- Remove libxml_get_last_error because false is not an error in this case, fixes #438 by @shish in #528
- Ignore functions which were removed pre-8.1 by @shish in #529
- [cli] use ProgressBar rather than log spam by @shish in #530
- ignore phpstan when phpstan claims that something is a resource, fixes #448, fixes #479, fixes #411 by @shish in #533
- Remove support for deprecated functions (which will be re-added later) by @shish in #536
- remove unused file from generator by @shish in #535
- Add an architecture overview section to the contributor guide by @shish in #534
- superficial bits in preparation for #503 by @shish in #540
- Move tests for generated files into generated file test folder by @shish in #538
- [ci] make rector tests less redundant by @shish in #542
- Document which versions of PHP are supported by @shish in #539
- [dev] function-info command by @shish in #531
- [generator] reduce hard-coding of directory paths by @shish in #543
- bump php version used in docker by @shish in #544
- more removal of hard-coded paths by @shish in #545
- Organise generator into namespaces by @shish in #541
- Generate files for multiple versions by @shish in #503
- Run phpstan on unit test directory by @shish in #548
- [dev] also mark /app as safe during .devcontainer/build.sh by @shish in #549
- [generator] fix typo by @shish in #550
- [generator] strip another category of falsey text by @shish in #551
- [generator] a little superficial consistency by @shish in #552
- [generator] ignore benevolence properly by @shish in #553
- Fix return types being incorrectly marked as resources, fixes #546 by @shish in #547
- [generator] Remove redundant phpstan overrides by @shish in #554
- remove superfluous null from preg_match_all, fixes #389 by @shish in #556
- mark shell_exec as falsy, not nullsy, fixes #281 by @shish in #557
- more docs by @shish in #558
- fix signature for socket_addrinfo_bind by @shish in #559
- more manual hints by @shish in #560
- Mark generated files as generated by @shish in #561
- Automatically regenerate the files by @github-actions in #564
- Move XML type parsing into PhpStanType by @shish in #563
- more detailed function-info output by @shish in #565
- Sort union types by @shish in #568
- Deduplicate (and unit test) logic for selecting the type-hint data source by @shish in #569
- More special-cases of preferring phpdoc to phpstan by @shish in #570
- Remove more redundant phpstan overrides by @shish in #567
- Simplify FunctionMapReader by @shish in #571
- More cases where 'resource' is incorrect by @shish in #572
- Fix signature for openssl_csr_sign by @shish in #573
- add regex for 'false if an error occurs', fixes #447 by @shish in #574
- strpos -> str_contains by @shish in #575
- strpos -> str_contains in generated files by @shish in #576
- Allow
non-empty-string
/non-falsey-string
in docblocks, fixes #398 by @shish in #577 - add proc_open, see #424 by @shish in #578
- turn foo[] into array rather than iterable, fixes #582 by @shish in #583
- [ci] fail workflow if we can't fetch input data by @shish in #581
- move configuration-y bits to /generator/config by @shish in #580
- add ob_get_clean in 8.1-8.3 by @shish in #584
- detect bzopen, fixes #407 by @shish in #585
- [github] issue templates by @shish in #586
- Update incorrect_function.yml by @shish in #587
- Update missing_function.yml by @shish in #588
- better forms by @shish in #589
- Make function-info 4000x faster by @shish in #590
- detect ftell (and popen), see #256 by @shish in #592
- deduplicate getErrorType by @shish in #591
- detect preg_replace_callback and preg_replace_callback_array, fixes #223 by @shish in #593
- [generator] make ErrorType into an actual type by @shish in #595
- ordered issue templates by @shish in #596
- [generator] detectFalsy/detectNullsy/detectEmpty -> getErrorType by @shish in #597
- remove a deprecated special case for a function which never needed to be in Safe in the first place by @shish in #598
- [generator] don't duplicate special-cases list, fixes #523 by @shish in #599
- Support for functions which return -1 on error, fixes #256 and others by @shish in #600
- add return statements to functionsList.php by @shish in #601
- phpunit version bump for generator by @shish in #602
- more generator unit tests by @shish in #603
- [generator] phpstan is required to run, not just to develop by @shish in #604
- Drop dependency on thecodingmachine/phpstan-strict-rules by @shish in #605
- more testing by @shish in #606
- drop unused dependency on coveralls by @shish in #607
- use phpstan 2.X by @shish in #608
- format by @shish in #609
- use phpstan 2 to check generated files as well as generator by @shish in #611
- Add a newline at the end of generated composer.json by @shish in #612
- detect dir() by @shish in #614
finfo
, despite being lowercase, is a class by @shish in #615
New Contributors
- @spawnia made their first contribution in #416
- @shish made their first contribution in #463
- @marmichalski made their first contribution in #451
- @staabm made their first contribution in #469
- @WyriHaximus made their first contribution in #445
- @smoench made their first contribution in #506
- @tacman made their first contribution in #514
Full Changelog: v2.5.0...v3.0.0