From 1e5f13b21b33b0d7ce86fe97ca145a3561433a7a Mon Sep 17 00:00:00 2001 From: wei <> Date: Mon, 18 Sep 2006 22:57:16 +0000 Subject: Add an interactive php shell that loads Prado classes. --- framework/3rdParty/PhpShell/php-shell-cmd.php | 171 ++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 framework/3rdParty/PhpShell/php-shell-cmd.php (limited to 'framework/3rdParty/PhpShell/php-shell-cmd.php') diff --git a/framework/3rdParty/PhpShell/php-shell-cmd.php b/framework/3rdParty/PhpShell/php-shell-cmd.php new file mode 100644 index 00000000..1b389686 --- /dev/null +++ b/framework/3rdParty/PhpShell/php-shell-cmd.php @@ -0,0 +1,171 @@ +registerExtensions(array( + "options" => PHP_Shell_Options::getInstance(), /* the :set command */ + + "autoload" => new PHP_Shell_Extensions_Autoload(), + "autoload_debug" => new PHP_Shell_Extensions_AutoloadDebug(), + "colour" => new PHP_Shell_Extensions_Colour(), + "exectime" => new PHP_Shell_Extensions_ExecutionTime(), + "inlinehelp" => new PHP_Shell_Extensions_InlineHelp(), + "verboseprint" => new PHP_Shell_Extensions_VerbosePrint(), + "loadscript" => new PHP_Shell_Extensions_LoadScript(), +)); + +$f = << + +>> use '?' to open the inline help + +EOF; + +printf($f, + $__shell->getVersion(), + $__shell->hasReadline() ? ', with readline() support' : ''); +unset($f); + +print $__shell_exts->colour->getColour("default"); +while($__shell->input()) { + if ($__shell_exts->autoload->isAutoloadEnabled() && !function_exists('__autoload')) { + /** + * default autoloader + * + * If a class doesn't exist try to load it by guessing the filename + * class PHP_Shell should be located in PHP/Shell.php. + * + * you can set your own autoloader by defining __autoload() before including + * this file + * + * @param string $classname name of the class + */ + + function __autoload($classname) { + global $__shell_exts; + + if ($__shell_exts->autoload_debug->isAutoloadDebug()) { + print str_repeat(".", $__shell_exts->autoload_debug->incAutoloadDepth())." -> autoloading $classname".PHP_EOL; + } + include_once str_replace('_', '/', $classname).'.php'; + if ($__shell_exts->autoload_debug->isAutoloadDebug()) { + print str_repeat(".", $__shell_exts->autoload_debug->decAutoloadDepth())." <- autoloading $classname".PHP_EOL; + } + } + } + + try { + $__shell_exts->exectime->startParseTime(); + if ($__shell->parse() == 0) { + ## we have a full command, execute it + + $__shell_exts->exectime->startExecTime(); + + $__shell_retval = eval($__shell->getCode()); + if (isset($__shell_retval)) { + print $__shell_exts->colour->getColour("value"); + + if (function_exists("__shell_print_var")) { + __shell_print_var($__shell,$__shell_retval, $__shell_exts->verboseprint->isVerbose()); + } else { + var_export($__shell_retval); + } + } + ## cleanup the variable namespace + unset($__shell_retval); + $__shell->resetCode(); + } + } catch(Exception $__shell_exception) { + print $__shell_exts->colour->getColour("exception"); + printf('%s (code: %d) got thrown'.PHP_EOL, get_class($__shell_exception), $__shell_exception->getCode()); + print $__shell_exception; + + $__shell->resetCode(); + + ## cleanup the variable namespace + unset($__shell_exception); + } + print $__shell_exts->colour->getColour("default"); + $__shell_exts->exectime->stopTime(); + if ($__shell_exts->exectime->isShow()) { + printf(" (parse: %.4fs, exec: %.4fs)", + $__shell_exts->exectime->getParseTime(), + $__shell_exts->exectime->getExecTime() + ); + } +} + +print $__shell_exts->colour->getColour("reset"); + -- cgit v1.2.3