diff options
Diffstat (limited to 'framework/Vendor/PhpShell/php-shell-init.php')
-rw-r--r-- | framework/Vendor/PhpShell/php-shell-init.php | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/framework/Vendor/PhpShell/php-shell-init.php b/framework/Vendor/PhpShell/php-shell-init.php new file mode 100644 index 00000000..fd0e9063 --- /dev/null +++ b/framework/Vendor/PhpShell/php-shell-init.php @@ -0,0 +1,87 @@ +<?php +@ob_end_clean(); +error_reporting(E_ALL); +set_time_limit(0); + +/** +* the wrapper around the PHP_Shell class +* +* - load extensions +* - set default error-handler +* - add exec-hooks for the extensions +* +* To keep the namespace clashing between shell and your program +* as small as possible all public variables and functions from +* the shell are prefixed with __shell: +* +* - $__shell is the object of the shell +* can be read, this is the shell object itself, don't touch it +* - $__shell_retval is the return value of the eval() before +* it is printed +* can't be read, but overwrites existing vars with this name +* - $__shell_exception is the catched Exception on Warnings, Notices, .. +* can't be read, but overwrites existing vars with this name +*/ + +//try loading it from PEAR +@require_once('PHP/Shell.php'); +if(class_exists('PHP_Shell', false)) +{ + require_once "PHP/Shell/Extensions/Autoload.php"; + require_once "PHP/Shell/Extensions/AutoloadDebug.php"; + require_once "PHP/Shell/Extensions/Colour.php"; + require_once "PHP/Shell/Extensions/ExecutionTime.php"; + require_once "PHP/Shell/Extensions/InlineHelp.php"; + require_once "PHP/Shell/Extensions/VerbosePrint.php"; + require_once "PHP/Shell/Extensions/LoadScript.php"; +} +else +{ + require_once(dirname(__FILE__)."/PHP/Shell.php"); + require_once(dirname(__FILE__)."/PHP/Shell/Extensions/Autoload.php"); + require_once(dirname(__FILE__)."/PHP/Shell/Extensions/AutoloadDebug.php"); + require_once(dirname(__FILE__)."/PHP/Shell/Extensions/Colour.php"); + require_once(dirname(__FILE__)."/PHP/Shell/Extensions/ExecutionTime.php"); + require_once(dirname(__FILE__)."/PHP/Shell/Extensions/InlineHelp.php"); + require_once(dirname(__FILE__)."/PHP/Shell/Extensions/VerbosePrint.php"); + require_once(dirname(__FILE__)."/PHP/Shell/Extensions/LoadScript.php"); +} + +/** +* default error-handler +* +* Instead of printing the NOTICE or WARNING from php we wan't the turn non-FATAL +* messages into exceptions and handle them in our own way. +* +* you can set your own error-handler by createing a function named +* __shell_error_handler +* +* @param integer $errno Error-Number +* @param string $errstr Error-Message +* @param string $errfile Filename where the error was raised +* @param interger $errline Line-Number in the File +* @param mixed $errctx ... +*/ +function __shell_default_error_handler($errno, $errstr, $errfile, $errline, $errctx) { + ## ... what is this errno again ? + if ($errno == 2048) return; + + throw new Exception(sprintf("%s:%d\r\n%s", $errfile, $errline, $errstr)); +} + +//set_error_handler("__shell_default_error_handler"); + +$__shell = new PHP_Shell(); +$__shell_exts = PHP_Shell_Extensions::getInstance(); +$__shell_exts->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() +)); + |