Assets 6
  • 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.

@bobthecow bobthecow released this Jun 10, 2018 · 8 commits to master since this release

Assets 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.

@bobthecow bobthecow released this Jun 2, 2018 · 33 commits to master since this release

Assets 6

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.

@bobthecow bobthecow released this May 22, 2018 · 50 commits to master since this release

Assets 6

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.

@bobthecow bobthecow released this Apr 18, 2018 · 113 commits to master since this release

Assets 6
  • Fix a regression for use statements without aliases.
  • Fix a regression for some uses of sudo.
  • ☝️ Increase test coverage to prevent these from happening again.

@bobthecow bobthecow released this Apr 17, 2018 · 123 commits to master since this release

Assets 6
  • Fix a scope variable regression introduced in v0.9.0.
  • Restore support for PHP Parser v1.3.
  • Add testing for minimum supported dependency versions.

@bobthecow bobthecow released this Apr 15, 2018 · 136 commits to master since this release

Assets 6

This is an enormous release.

Note that PsySH v0.9.0 drops support for PHP < 5.4. Upgrade already. PHP 7.x is soooo much better.

New:

  • A significant internals refactor, making cool new commands possible (Thanks @Markcial!)
  • … Including a new timeit command, for quick-and-dirty code profiling! (Thanks @Markcial!)
  • Inherit current use and namespace statements during Psy\debug sessions.
  • Add support for live code reloading! But only if you're still using PHP 5.x :( (Thanks @nateabele!)
  • Omit input with a starting space from readline history (much like Bash and basically every other shell ever)
  • Add support for PHP Parser 4.x.

Improved:

  • A bunch of code reorginization and cleanup.
  • Various phpdoc and assertion improvements (Thanks @carusogabriel!)
  • list, dump, doc and show the result of arbitrary code input.
  • Throw arbitrary code with throw-up, rather than just an existing variable.
  • throw-up at runtime rather than parse time… which means you can conditionally throw-up! See b39dd56 for an example.
  • Add static constant support to sudo.
  • Make sudo code play better with history.
  • Support $__namespace magic variable with show --ex.
  • Set the $_ magic variable with the output of the parse command.
  • Better support for brace-style namespace statements with PHP Parser >= v3.1.2.
  • Better support for \Error across the board.
  • Ensure that constructors don't specify a return type.
  • Make it more clear when an exception comes from REPL code.
  • Include OS family in Psy\info output.

Removed:

  • Drop support for PHP < 5.4 (Thanks @castarco!)
  • Remove support for really really old (and deprecated) history file paths.
  • Deprecate several unused methods (which you're almost certainly not even using, but you'll find out soon enough!)
  • Add deprecation warning for tabCompletion and tabCompletionMatchers config options — use useTabCompletion and matchers, respectively.