PsySH v0.10.0 Release Notes
Release Date: 2020-03-15 // about 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
andcategory=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)
- Make
- 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
commandlist
alias. Now that PsySH supports arbitrary expressions as arguments forls
, having alist
alias is sometimes ambiguous, for example when using the list keyword with a space before its parenthesis. - 0๏ธโฃ The
--version
short flag has changed to-V
, as-v
is now used for verbosity (matching Symfony Console defaults). - โ Remove deprecated
InterfaceEnumerator
andTraitEnumerator
(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.