Skip to content

Releases: bobthecow/psysh

PsySH v0.10.2

21 Mar 07:00
Compare
Choose a tag to compare
  • 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

15 Mar 22:57
Compare
Choose a tag to compare

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.

PsySH v0.9.12

06 Dec 14:33
Compare
Choose a tag to compare
  • Update XdgBaseDir dependency to v0.1.*

PsySH v0.9.11

27 Nov 22:49
Compare
Choose a tag to compare
  • Add support for Symfony 5.0 (Thanks @Taluu!)

(Skipping v0.9.10 because I tagged a broken commit 😬)

PsySH v0.9.9

13 Oct 15:31
Compare
Choose a tag to compare
  • 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

05 Sep 11:57
Compare
Choose a tag to compare
  • 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

11 Aug 16:09
Compare
Choose a tag to compare
  • 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

10 Jun 18:13
Compare
Choose a tag to compare

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

02 Jun 16:50
Compare
Choose a tag to compare

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

22 May 07:21
Compare
Choose a tag to compare

New:

  • Add support for a bound class when starting PsySH from inside a static class context.
  • Add support for self and static in commands like ls, show and doc.
  • Add tab completion for doc, ls and show 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 them trait X.
  • Fix using doc command with language constructs.
  • Fix the line number reported for some type errors.