github thecodingmachine/safe v3.0.0

one day ago

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 when JSON_THROW_ON_ERROR flag is set in json_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

Full Changelog: v2.5.0...v3.0.0

Don't miss a new safe release

NewReleases is sending notifications on new releases.