> On Jan 19, 2021, at 18:55, tyson andre <tysonandre...@hotmail.com> wrote:
> 
> Hi internals,
> 
> Voting has started on 
> https://wiki.php.net/rfc/readline_interactive_shell_result_function
> on 2021-01-19, and ends on 2021-02-02.
> 
> This RFC proposes to dump the results of non-null expressions using 
> var_dump/var_export() by default in `php -a` (the interactive shell).
> Additionally, this adds a new function 
> `readline_interactive_shell_result_function` to the readline PHP module.
> This function only affects interactive shells - it can optionally be used to 
> set or clear a closure when `extension_loaded('readline') === true`,
> but that closure would only be called in interactive shells (i.e. php -a).
> (That closure would be called instead of the native implementation with the 
> snippet of code that was evaluated and the expression's result,
> if a php statement contained a single expression such as `2+2;` or `$x = 
> [1,2];` (that could be used as the expression of a return statement)
> - Dumping of expression results can be disabled using an ini setting or at 
> runtime
> 
> Thanks,
> - Tyson


I voted “no” because I don’t think 
`readline_interactive_shell_result_function()` solves a problem in a way that 
is better than can be done in userland. It’s quite limited, requiring the 
readline extension, and anyone who wishes to build a more complex 
implementation will need to require users to add something to 
`auto_prepend_file` or manually load something after dropping into interactive 
mode.

I had originally thought that userland implementations might be able to make 
use of this to piggyback off of `php -a`, but Justin Hileman (author of PsySH) 
thinks it’s not something that would be useful to userland REPLs [^1].

> There’s still no way to do 99% of what PsySH does without a userland REPL. 
> This just makes the output look similar.

I do think there’s value in improving PHP’s built-in interactive mode with 
prettier dumping of expression results, but I think 
`readline_interactive_shell_result_function()` will not end up being used in 
practice.

Cheers,
Ben


[^1]: https://twitter.com/ramsey/status/1347661890420428802

Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to