Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tag: 1.3
Commits on Oct 21, 2010
  1. Provide a warning when disabling forking on every command in case of …

    adonohue authored
    …missing pcntl.
  2. @relrod

    Make pcntl recommended, but not *required*.

    relrod authored adonohue committed
    Mac OS X's default PHP install does not include pcntl.
    Let's make this optional, so people don't have to recompile PHP
    just to use phpsh. This commit lets us use the benefits of pcntl
    if we have it, but doesn't force us to have it.
  3. Don't use shell for running processes.

    adonohue authored
  4. @whatthejeff

    Fixed a somewhat obscure bug (refs issue_11).

    whatthejeff authored adonohue committed
    In order to avoid crashing phpsh on fatal errors, a trick was added that would fork PHP on every
    command.  This trick relies on `` to keep track of PIDs.  Unfortunately, on some
    systems, namely Ubuntu, `subprocess.Popen()` reports an incorrect PID for the initial startup of
    The reason for this has to do with the way that `subprocess.Popen()` executes commands.  By
    default, commands are executed using the Bourne shell (or a Bourne shell replacement which is
    more likely the case) by issuing the following command: `/bin/sh -c command`.  The problem with
    this is that some Bourne shell replacements handle this differently.  For example, in bash this
    command will create a single process with a single PID.  In dash (the default Bourne shell
    replacement for Ubuntu) this command will create two separate processes and report back to
    Python that the PID is actually for the `/bin/sh -c` command.
    To fix this inconsistency, we must force Python to use the same shell regardless of the operating
    system.  I've chosen bash since it's the more ubiquitous Bourne shell replacement and also
    produces the more desirable results.
  5. @relrod

    Add a sensical .gitignore, so we don't accidentally commit the workin…

    relrod authored adonohue committed
    …g build
    directory or compiled python files.
Commits on Oct 20, 2010
  1. @whatthejeff

    Don't load Xdebug if it's already loaded. This refs issue_4.

    whatthejeff authored adonohue committed
    Ignore stderr while checking if Xdebug is already loaded.
Commits on Sep 15, 2010
  1. Remove no-op call to filter error message lines

    adonohue authored
  2. Sort autocomplete identifiers

    adonohue authored
  3. Cut down some long lines. In the process, sort autocomplete identifiers

    adonohue authored
    after inserting all of them, instead of insertion sorting.
  4. Merge branch 'missing_autocomplete' of…

    adonohue authored
    …phpsh into stufffromgithub
  5. Merge branch 'php_dependencies' of

    adonohue authored
    …into stufffromgithub
  6. Merge branch 'broken_assignment' of

    adonohue authored
    … into stufffromgithub
Commits on Sep 11, 2010
  1. @whatthejeff
  2. @whatthejeff

    Fixed the error reporting for PHP startup errors.

    whatthejeff authored
     * Errors are no longer reported twice.
     * Empty lines are no longer outputted.
     * Errors use the correct color.
     * Some superfluous code has been removed.
  3. @whatthejeff
Commits on Sep 10, 2010
  1. @whatthejeff
  2. @whatthejeff

    Fixed a bug where autocomplete was broken altogether if certain excep…

    whatthejeff authored
    …tions were raised while loading ctags. For instance, if you just run phpsh without creating a ctags file, autocomplete will not work. This shouldn't be the case as autocomplete doesn't require ctags.
Commits on Sep 9, 2010
  1. @whatthejeff
Commits on Sep 8, 2010
  1. @whatthejeff

    Fixed a bug with assignment introduced in 4afa0af.

    whatthejeff authored
    Refactoring the `eval()` statements to a separate function won't work as assignment in phpsh relies on `eval()` scoping variables inside `___Phpsh___::interactive_loop()`.
Commits on Aug 25, 2010
  1. Show exception stack traces in phpsh

    adonohue authored
Commits on Aug 20, 2010
  1. @kotas

    fix object dump fails when property name has its access level outside…

    kotas authored
    … quotes. (like ["abc":protected])
Commits on Aug 10, 2010
  1. @relrod

    Convert readme file to Markdown.

    relrod authored adonohue committed
    Convert the readme file to Markdown.
    Add the easy_install commands for python deps.
    [This is a pull from github]
  2. Search for ctags files recursively by default.

    Aran Donohue authored adonohue committed
    Search for ctags files recursively by default.
  3. Improve error output when there is a problem starting PHP.

    Aran Donohue authored adonohue committed
    Improve error output when there is a problem starting PHP.
  4. phpsh spawned php processes should not ignore SIGPIPE

    Yiding Jia authored adonohue committed
    python by default ignores SIGPIPE, this setting transfers to child
    processes, causing some php processes to not exit in certain cases and
    instead waste CPU. This resets the SIGPIPE signal handler to default,
    which will kill the process when the pipe is gone.
  5. phpsh renice itself on startup

    Yiding Jia authored adonohue committed
    phpsh deals with forking processes and polling IO handles. Renicing
    should keep rare concurrency bugs from exploding the dev servers.
  6. Disable forking when xdebug is on

    Yiding Jia authored adonohue committed
    Forking-on-every-command seems to cause dbgp-phpsh to infinite loop and
    consume cpu. Make the forking enabled only when -X flag is set, i.e.
    when xdebug is disabled.
  7. reverted to 25cf50d because later revision introduced rare cpu hoggin…

    Yiding Jia authored adonohue committed
    …g bug
Commits on Jul 9, 2010
  1. phpsh recover from fatals without losing state

    Yiding Jia authored
    based on pcarduner's idea of forking on every command and killing the
    parent. Return new pid in the command file.
Commits on May 18, 2010
  1. fixed phpsh to work with objects implementing Serializable

    Dmitri Petrov authored
    Summary: current implementation of phpsh usese serialize/unserialize
    cycle and some hacks to convert an object into an array. This fails if
    the object's class implements the Serializable interface and uses custom
    serialization (hacks dont' work). I have fixed this problem by instead
    casting objects to arrays and demangiling private and protected key
Commits on Apr 15, 2010
  1. @scottmac

    Running without parameters throws exception

    scottmac authored
    operator precedence is off so you get an exception about types
Commits on Mar 23, 2010
  1. phpsh 1.3; no duplication with version; dbgp becomes actual script

    Daniel Corson authored
    Summary: it looks like the python installer will no longer leave executable, probably to enforce standards and stop ppl like
    us.  so now we do the "right thing" and make an actual
    "script" in  also give it longer name
    Reviewed By: ccheever
    Test Plan: phpsh --version, fb redeploy, stuff in and out of www/, d
    Revert Plan: ok
Something went wrong with that request. Please try again.