github bobthecow/psysh v0.10.0
PsySH v0.10.0

latest releases: v0.12.4, v0.12.3, v0.12.2...
4 years ago

This might just be our... BIGGEST. RELEASE. EVER.

Note that PsySH v0.10.0 drops support for PHP < 5.5, and non-LTS HHVM.

Uppppppggggggrraaaaddddeeeee.

New:

  • Isolate code in bundled phar releases. This means if you download a pre-packaged PsySH binary, it can't collide with code you have installed locally in your project (Thanks @theofidry!)
  • Allow conditional bindings in .inputrc and .editrc (Thanks @tgr!)
  • Add support for verbosity and interactivity flags ... try -q, -v and -n (Thanks @aksonnic!)
  • Several improvements for non-interactive UX:
    • Support executing stdin, make it play nice with the rest of non-interactive mode.
    • Add support for --raw-output (-r) for printing var_export-style return values with non-interactive input.
    • Suppress startup messages when running with --raw-output and --no-interaction
    • Only output bracketed paste control characters when interactive.
    • Stop paginating non-interactive and raw output.
  • Add support for namespace and use declarations in reflecting commands (ls, doc, etc).

Improved:

  • Better instanceof checks, catching more fatal errors before they fatal (Thanks @baukevdw!)
  • Add a check for empty $array[] expressions outside of the left-hand side of an assignment.
  • Add a check for goto with an invalid label (Thanks @zonuexe!)
  • Support passing unpacked arrays by reference.
  • Improve output of the ls command with constants:
    • Make category=internal and category=user equivalent to --user and --internal
    • Make category option case-insensitive
    • Fix "Interal Constants" typo that's been there basically forever
    • Add appropriate-case labels for constant categories (e.g. JSON instead of Json)
  • Suppress inherited private methods when listing methods on a class.
  • Prevent shadowing namespace names when they collide with other use statement prefixes.
  • Fix function signature formatting for optional array params.
  • Warn if libedit refuses to write history file. Because apparently it does that sometimes.
  • Clearer error message when mkdir fails while setting up PsySH (Thanks @GrahamCampbell!)
  • Test against PHP 7.3 and 7.4 on CI (Thanks @andreybolonin, @alexeyshockov, and @GrahamCampbell!)
  • Add support for Symfony 5 (Thanks @Taluu!)
  • Fix Symfony 4.1 table deprecation notices.
  • Fix some PHP 7.4 deprecations in the PsySH codebase (Thanks @ejunker, @Salmatron)
  • Fix some longstanding inconsistencies when running under HHVM.
  • Make commands --help option more lenient.
  • Use white text instead of black for error messages (Thanks @kristianklok!)
  • Don't throw error exceptions for warnings or notices. Log them and continue, just like you'd expect.
  • Clean up interactive vs non-interactive mode code.
  • More robust detection for pcntl and posix extension support.
  • Improve test coverage.
  • Code cleanup (Thanks @GrahamCampbell, @carusogabriel and PHPStan!)
  • Update docblock copyright years.
  • Move PHPUnit and Box to composer bin dependencies.
  • Exclude unnecessary files and folders from release archives (Thanks @ankurk91!)

Removed:

  • Drop support for PHP 5.4 and non-LTS HHVM. All y'all should join us in the future!
  • Remove the ls command list alias. Now that PsySH supports arbitrary expressions as arguments for ls, having a list alias is sometimes ambiguous, for example when using the list keyword with a space before its parenthesis.
  • The --version short flag has changed to -V, as -v is now used for verbosity (matching Symfony Console defaults).
  • Remove deprecated InterfaceEnumerator and TraitEnumerator (which have been unused for several releases).
  • Put HHVM on life support. Test against the LTS release of HHVM 3. Skip a bunch of known failing tests.

Don't miss a new psysh release

NewReleases is sending notifications on new releases.