当前位置: 首页>>代码示例>>PHP>>正文


PHP Kohana::exception_handler方法代码示例

本文整理汇总了PHP中Kohana::exception_handler方法的典型用法代码示例。如果您正苦于以下问题:PHP Kohana::exception_handler方法的具体用法?PHP Kohana::exception_handler怎么用?PHP Kohana::exception_handler使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Kohana的用法示例。


在下文中一共展示了Kohana::exception_handler方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: write

 /**
  * Write an array of exceptions to a log file with
  * an attachment file (filename in log entry).
  */
 public function write(array $messages)
 {
     // Abort if no messages
     if (empty($messages)) {
         return;
     }
     // Set the monthly directory name
     $directory = $this->_directory . date('Y/m/d') . DIRECTORY_SEPARATOR;
     if (!is_dir($directory)) {
         // Create the monthly directory
         mkdir($directory, 0777, TRUE);
     }
     foreach ($messages as $message) {
         if (is_object($message['body']) && $message['body'] instanceof Exception) {
             // Make a filename
             $filename = $directory . $message['time'] . '.htm';
             // Get the trace
             ob_start();
             Kohana::exception_handler($message['body']);
             $trace = ob_get_clean();
             // Write the trace
             file_put_contents($filename, $trace);
         }
     }
 }
开发者ID:Burgestrand,项目名称:koxtend,代码行数:29,代码来源:exception.php

示例2: __toString

 /**
  * Magic method, returns the output of render(). If any exceptions are
  * thrown, the exception output will be returned instead.
  *
  * @return  string
  */
 public function __toString()
 {
     try {
         return $this->render();
     } catch (Exception $e) {
         // Display the exception message
         Kohana::exception_handler($e);
         return '';
     }
 }
开发者ID:kerkness,项目名称:kerkness,代码行数:16,代码来源:listbox.php

示例3: handle

 public static function handle(Exception $e)
 {
     switch (get_class($e)) {
         case 'Error_404':
         case 'ReflectionException':
             echo Request::factory('errors/404')->execute();
             break;
         default:
             return Kohana::exception_handler($e);
             break;
     }
 }
开发者ID:natgeo,项目名称:kids-myshot,代码行数:12,代码来源:handler.php

示例4: handle

 /**
  * Handles exceptions
  * 
  * @param Exception $e the exception to handle
  *
  * @return bool
  */
 public static function handle(Exception $e)
 {
     switch (get_class($e)) {
         case 'Vendo_404':
         case 'ReflectionException':
             // This is bad
             Request::instance()->status = 404;
             $view = new View_Error_404();
             $view->message = $e->getMessage();
             $view->title = 'File Not Found';
             echo $view;
             return TRUE;
             break;
         default:
             return Kohana::exception_handler($e);
             break;
     }
 }
开发者ID:vendo,项目名称:core,代码行数:25,代码来源:handler.php

示例5: doIncludeViews

 public function doIncludeViews($text)
 {
     if (preg_match_all('/{{(\\S+?)}}/m', $text, $matches, PREG_SET_ORDER)) {
         $replace = array();
         foreach ($matches as $set) {
             list($search, $view) = $set;
             try {
                 $replace[$search] = View::factory($view)->render();
             } catch (Exception $e) {
                 ob_start();
                 // Capture the exception handler output and insert it instead
                 Kohana::exception_handler($e);
                 $replace[$search] = ob_get_clean();
             }
         }
         $text = strtr($text, $replace);
     }
     return $text;
 }
开发者ID:bluehawk,项目名称:kohanut-doc,代码行数:19,代码来源:markdown.php

示例6: shutdown_handler

 /**
  * Catches errors that are not caught by the error handler, such as E_PARSE.
  *
  * @uses    Kohana::exception_handler()
  * @return  void
  */
 public static function shutdown_handler()
 {
     try {
         if (self::$caching === TRUE and self::$_files_changed === TRUE) {
             // Write the file path cache
             Kohana::cache('Kohana::find_file()', self::$_files);
         }
     } catch (Exception $e) {
         // Pass the exception to the handler
         Kohana::exception_handler($e);
     }
     if ($error = error_get_last()) {
         // If an output buffer exists, clear it
         ob_get_level() and ob_clean();
         // Fake an exception for nice debugging
         Kohana::exception_handler(new ErrorException($error['message'], $error['type'], 0, $error['file'], $error['line']));
     }
 }
开发者ID:ascseb,项目名称:core,代码行数:24,代码来源:core.php

示例7: shutdown_handler

 /**
  * Catches errors that are not caught by the error handler, such as E_PARSE.
  *
  * @uses    Kohana::exception_handler
  * @return  void
  */
 public static function shutdown_handler()
 {
     if (!Kohana::$_init) {
         // Do not execute when not active
         return;
     }
     try {
         if (Kohana::$caching === TRUE and Kohana::$_files_changed === TRUE) {
             // Write the file path cache
             Kohana::cache('Kohana::find_file()', Kohana::$_files);
         }
     } catch (Exception $e) {
         // Pass the exception to the handler
         Kohana::exception_handler($e);
     }
     if (Kohana::$errors and $error = error_get_last() and in_array($error['type'], Kohana::$shutdown_errors)) {
         // Clean the output buffer
         ob_get_level() and ob_clean();
         // Fake an exception for nice debugging
         Kohana::exception_handler(new ErrorException($error['message'], $error['type'], 0, $error['file'], $error['line']));
         // Shutdown now to avoid a "death loop"
         exit(1);
     }
 }
开发者ID:abdul-baten,项目名称:hbcms,代码行数:30,代码来源:core.php

示例8: teste_exception_handler

 /**
  * Tests Kohana::exception_handler()
  *
  * @test
  * @dataProvider provider_exception_handler
  * @covers Kohana::exception_handler
  * @param boolean $exception_type    Exception type to throw
  * @param boolean $message           Message to pass to exception
  * @param boolean $is_cli            Use cli mode?
  * @param boolean $expected          Output for Kohana::exception_handler
  * @param string  $expexcted_message What to look for in the output string
  */
 public function teste_exception_handler($exception_type, $message, $is_cli, $expected, $expected_message)
 {
     try {
         Kohana::$is_cli = $is_cli;
         throw new $exception_type($message);
     } catch (Exception $e) {
         ob_start();
         $this->assertEquals($expected, Kohana::exception_handler($e));
         $view = ob_get_contents();
         ob_clean();
         $this->assertContains($expected_message, $view);
     }
     Kohana::$is_cli = TRUE;
 }
开发者ID:Tidwell,项目名称:HMXSongs-PHP-API,代码行数:26,代码来源:CoreTest.php

示例9: __toString

 /**
  * Magic method, returns the output of render(). If any exceptions are
  * thrown, the exception output will be returned instead.
  * @return  string
  */
 public function __toString()
 {
     try {
         return $this->render();
     } catch (Exception $e) {
         // Display the exception message
         if (substr(Kohana::VERSION, 0, 3) == '3.0') {
             Kohana::exception_handler($e);
         } else {
             Kohana_Exception::handler($e);
         }
         return '';
     }
 }
开发者ID:glydetech,项目名称:ko3.xhtml,代码行数:19,代码来源:xhtml.php

示例10: render

 /**
  * Renders the HTML code using specified view.
  * If no view is specified, loads the default one specified in module configuration.
  *
  * @uses View::factory()
  * @param string		$view	View location
  * @return View|NULL			Rendered View, that includes title, metas, favicons, stylesheets and javascripts
  */
 public function render($view = NULL)
 {
     try {
         $view = View::factory(empty($view) ? $this->config->get('view') : $view);
         $view->set('title', $this->title)->set('meta', $this->meta)->set('favicons', $this->favicons)->set('stylesheets', $this->stylesheets)->set('javascripts', $this->javascripts);
         return $view;
     } catch (Exception $e) {
         // Display the exception message
         Kohana::exception_handler($e);
         return NULL;
     }
 }
开发者ID:roomcays,项目名称:kohana-html-header,代码行数:20,代码来源:header.php

示例11: setup

 /**
  * Sets up the PHP environment. Adds error/exception handling, output
  * buffering, and adds an auto-loading method for loading classes.
  *
  * This method is run immediately when this file is loaded, and is
  * benchmarked as environment_setup.
  *
  * For security, this function also destroys the $_REQUEST global variable.
  * Using the proper global (GET, POST, COOKIE, etc) is inherently more secure.
  * The recommended way to fetch a global variable is using the Input library.
  * @see http://www.php.net/globals
  *
  * @return  void
  */
 public static function setup()
 {
     static $run;
     // This function can only be run once
     if ($run === TRUE) {
         return;
     }
     // Start the environment setup benchmark
     Benchmark::start(SYSTEM_BENCHMARK . '_environment_setup');
     // Define Kohana error constant
     define('E_KOHANA', 42);
     // Define 404 error constant
     define('E_PAGE_NOT_FOUND', 43);
     // Define database error constant
     define('E_DATABASE_ERROR', 44);
     if (self::$cache_lifetime = self::config('core.internal_cache')) {
         // Are we using encryption for caches?
         self::$internal_cache_encrypt = self::config('core.internal_cache_encrypt');
         if (self::$internal_cache_encrypt === TRUE) {
             self::$internal_cache_key = self::config('core.internal_cache_key');
             // Be sure the key is of acceptable length for the mcrypt algorithm used
             self::$internal_cache_key = substr(self::$internal_cache_key, 0, 24);
         }
         // Set the directory to be used for the internal cache
         if (!(self::$internal_cache_path = self::config('core.internal_cache_path'))) {
             self::$internal_cache_path = APPPATH . 'cache/';
         }
         // Load cached configuration and language files
         self::$internal_cache['configuration'] = self::cache('configuration', self::$cache_lifetime);
         self::$internal_cache['language'] = self::cache('language', self::$cache_lifetime);
         // Load cached file paths
         self::$internal_cache['find_file_paths'] = self::cache('find_file_paths', self::$cache_lifetime);
         // Enable cache saving
         Event::add('system.shutdown', array(__CLASS__, 'internal_cache_save'));
     }
     // Disable notices and "strict" errors
     $ER = error_reporting(~E_NOTICE & ~E_STRICT);
     // Set the user agent
     self::$user_agent = !empty($_SERVER['HTTP_USER_AGENT']) ? trim($_SERVER['HTTP_USER_AGENT']) : '';
     if (function_exists('date_default_timezone_set')) {
         $timezone = self::config('locale.timezone');
         // Set default timezone, due to increased validation of date settings
         // which cause massive amounts of E_NOTICEs to be generated in PHP 5.2+
         date_default_timezone_set(empty($timezone) ? date_default_timezone_get() : $timezone);
     }
     // Restore error reporting
     error_reporting($ER);
     // Start output buffering
     ob_start(array(__CLASS__, 'output_buffer'));
     // Save buffering level
     self::$buffer_level = ob_get_level();
     // Set autoloader
     spl_autoload_register(array('Kohana', 'auto_load'));
     // Set error handler
     set_error_handler(array('Kohana', 'exception_handler'));
     // Set fatal error handler
     register_shutdown_function(function () {
         if ($error = error_get_last()) {
             ob_clean();
             Kohana::exception_handler($error['type'], $error['message'], $error['file'], $error['line'], NULL);
         }
     });
     // Set exception handler
     set_exception_handler(array('Kohana', 'exception_handler'));
     // Send default text/html UTF-8 header
     header('Content-Type: text/html; charset=UTF-8');
     // Load locales
     $locales = self::config('locale.language');
     // Make first locale UTF-8
     $locales[0] .= '.UTF-8';
     // Set locale information
     self::$locale = setlocale(LC_ALL, $locales);
     if (self::$configuration['core']['log_threshold'] > 0) {
         // Set the log directory
         self::log_directory(self::$configuration['core']['log_directory']);
         // Enable log writing at shutdown
         register_shutdown_function(array(__CLASS__, 'log_save'));
     }
     // Enable Kohana routing
     Event::add('system.routing', array('Router', 'find_uri'));
     Event::add('system.routing', array('Router', 'setup'));
     // Enable Kohana controller initialization
     Event::add('system.execute', array('Kohana', 'instance'));
     // Enable Kohana 404 pages
     Event::add('system.404', array('Kohana', 'show_404'));
     // Enable Kohana output handling
//.........这里部分代码省略.........
开发者ID:momoim,项目名称:momo-api,代码行数:101,代码来源:Kohana.php


注:本文中的Kohana::exception_handler方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。