function run($filter_chain) { $this->toolkit = lmbToolkit::instance(); lmbErrorGuard::registerFatalErrorHandler($this, 'handleFatalError'); lmbErrorGuard::registerExceptionHandler($this, 'handleException'); $filter_chain->next(); }
static function registerFatalErrorHandler() { static $shutdown_registered = false; $delegate = func_get_args(); self::$fatal_error_delegate = lmbDelegate::objectify($delegate); if (!$shutdown_registered) { register_shutdown_function(array('lmbErrorGuard', '_shutdownHandler')); $shutdown_registered = true; } }
function testPackageInclude_NotExistedPackage() { lmbErrorGuard::registerErrorHandler('lmbErrorGuard', 'convertErrorsToExceptions'); try { lmb_package_require($name = 'not_existed', $package_dir = 'darkside/'); $this->fail(); } catch (lmbNoSuchPackageException $e) { $this->assertEqual($package_dir, $e->getParam('dir')); $this->assertEqual($name, $e->getParam('name')); } restore_error_handler(); }
return $dump; default: return var_export($arg, true); } } /** * Escaping string for log. * If we work in cli mode we don't need htmlspecialchars * @param $string */ function lmb_escape_string($string, $length_limit = 100) { if ('cli' == php_sapi_name()) { return substr($string, 0, $length_limit); } else { return htmlspecialchars(substr($string, 0, $length_limit)); } } function lmb_var_dir($value = null) { if ($value) { lmb_env_set('LIMB_VAR_DIR', $value); } else { return lmb_env_get('LIMB_VAR_DIR'); } } spl_autoload_register('lmb_autoload'); new lmbException('ugly hack'); new lmbPHPFileNotFoundException('ugly hack'); lmbErrorGuard::registerErrorHandler('lmbErrorGuard', 'convertErrorsToExceptions');
function testRequireThrowsExceptionForNonExistingFile() { lmbErrorGuard::registerErrorHandler('lmbErrorGuard', 'convertErrorsToExceptions'); try { lmb_require($file = 'foo_' . mt_rand() . uniqid() . '.inc.php'); $this->fail('lmb_require() should throw exception for non-existing file!'); } catch (lmbPHPFileNotFoundException $e) { $this->assertPattern('~' . preg_quote($file) . '~', $e->getMessage()); } restore_error_handler(); }