Mailing list at: http://groups.google.com/group/phpsh
Version:
- PHP 5+
Modules:
- sqlite
- Python < 2.6:
sudo easy_install pysqlite
- Python >= 2.6: pysqlite should already be installed, since it's part of the stdlib
- Python < 2.6:
- readline
sudo easy_install readline
Note that this install currently clobbers any previous /etc/phpsh/rc.php
python setup.py build
sudo python setup.py install
phpsh
Note that this install currently clobbers any previous ~/.phpsh/rc.php
python setup.py install --prefix=~
export PYTHONPATH=~/lib/python2.6/site-packages
(Adjust this if your python minor version differs from 2.6)~/bin/phpsh
You will probably want to put the PYTHONPATH line in your .bashrc or such, and just add ~/bin to your PATH as well.
There are more details on installing from a setup.py at http://docs.python.org/library/distutils.html
- Just run
phpsh
and have fun.
cd ~/www
ctags -R
# for phpsh ctags integration, recommendedphpsh lib/init.php
# or some file(s) that load codebase libraries
- Modify /etc/phpsh/rc.php. Then:
cd ~/www
phpsh
- And for times when you just want vanilla php:
phpsh -c none
- For individual configuration, also see rc.example.php in the php distribution.
- For faster iteration, after installing once, you can run phpsh from src/ directly without reinstalling.
cd ~/www
~/projects/phpsh/src/phpsh
-
Simple phpsh breakpoints that you can insert into your php code.
-
jlindamood has suggested adding a very basic debugging facility in which phpsh.php would define some function called like phpsh_breakpoint() which you would be able to put in your code that would cause the php> to re-happen at that breakpoint so that you can investigate whatever state until you issue like a phpsh_resume() (or whatever it would be called).
-
My suspicion is that that can be done pretty easily be having a new message type from phpsh.php to phpsh.py. (Currently there is only the 'ready' message when phpsh.php is ready to receive a new line of codes from phpsh.py.)
-
-
Magic fatal undoing?
- brent suggested adding some kind of katamari-esque memory snapshotting, so that on fatals like calling a nonexistent function (which are not catchable in php-land, sadly) can be magically recovered from. I think dweatherford or larry would be good to ask about this kind of black magic.
-
Convert from /tmp file to named pipe for 'ready' message passing http://my.opera.com/zomg/blog/2007/08/29/php-and-named-pipes
-
Maybe phpsh_check_syntax shouldn't actually be installed as a script, and just be a pkg_resource? Didn't want to worry about zip file overhead, and installing didn't seem like a big deal.
-
Similarly, php_manual.db should probably go in share/ not etc/ but similarly was worried about b.s. with setuptools..
-
Paging for long php> d .. results? Or is terminal scroll fine..
-
Thread loading ctags and starting php? Would speed start but not restart.
-
Command-line apc for faster php startup for large codebases.
-
Note on php start error to start from codebase place?
-
Make tab to show function signature work with multiline func sigs.