Releases: bobthecow/psysh
Releases · bobthecow/psysh
PsySH v0.10.2
- Work around bug with code isolation in pre-packaged phars.
(Skipping v0.10.1, which was supposed to fix this but didn't)
PsySH v0.10.0
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. - 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.
PsySH v0.9.12
- Update XdgBaseDir dependency to v0.1.*
PsySH v0.9.11
- Add support for Symfony 5.0 (Thanks @Taluu!)
(Skipping v0.9.10 because I tagged a broken commit 😬)
PsySH v0.9.9
- Improve list assignment support (again)… now you can have function calls and really deep nested array and property access, if that's a thing you're into.
- Fix a bug where context variables were overwritten if the last line resulted in an error.
- Remove 1024 character length limitation for input on systems without readline.
- Bump dependencies on php-console-highlighter and Box.
PsySH v0.9.8
- Add support for static calls on traits (Thanks @zonuexe!)
- Improve test coverage (a bit)
- Improve list assignment support... do fancy things like
[$a[0], $a[1]] = [1, 2]
!
PsySH v0.9.7
- Fix regression updating execution scope with variables declared by commands.
- Fix class constant reflection in PHP 7.2.
- Remove dependency on ctype extension.
- Declare explicit dependencies on json and tokenizer extensions.
- Use fully-qualified names for core function calls.
- Minor code cleanup.
PsySH v0.9.6
New:
- Throw strings via
throw-up
command (e.g.throw-up "Wheee!"
)
Improved:
- More accurate
timeit
command. It used to count the time to parse input and serialize return values. Now it doesn't. - Fix a bug preventing
throw-up
from working with some code input. - Fix bug preventing omitted items in
list()
from working at all. - A bunch more test coverage.
PsySH v0.9.5
New:
- Add documentation support for built-in and magic constants! You'll need to update your manual DB to get the latest hotness :)
Improved:
- Make process forking more resilient to interrupted system calls.
- Use \ReflectionClassConstant in PHP >= 7.1.
- A bunch of automated build fixes (the last one … wasn't so automated).
- Add a bit more test coverage.
PsySH v0.9.4
New:
- Add support for a bound class when starting PsySH from inside a static class context.
- Add support for
self
andstatic
in commands likels
,show
anddoc
. - Add tab completion for
doc
,ls
andshow
commands (Thanks @lvht!) - Switch to Box for phar generation (Thanks @theofidry!)
- Add an iconv polyfill to the "compat" build dependencies.
- Add a code cleaner pass to detect issues with destructuring assignment via
list
and[]
(Thanks @zonuexe!) - Add a bunch of test coverage.
Improved:
- Fix a minor bug closing input buffer hitting enter twice after a line ending in a backslash.
- Fix false positives when matching command names, for example, if a line started with a command name in a quoted string.
- Fix tab completion for methods, properties and constants of namespaced classes.
- Stop executing commands inside strings that wrap onto multiple lines. I'm not sure whether this ever happened in real life, but it's kind of ridiculous and now it won't :P
- Fix a reference assignment regression from v0.9.x.
- Fix incorrect signature for traits in PHP 5.x. The reflection API says they're
abstract public trait X
, but we'll just call themtrait X
. - Fix using
doc
command with language constructs. - Fix the line number reported for some type errors.