add onUnknow() event
[irbot.git] / sources / functions.inc.php
blob4760966dbce998275113774216d2f746131e106a
1 <?php
2 /**
3 * This file is part of IrBot, irc robot.
4 * Copyright (C) 2007 Bellière Ludovic
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 function debug($set=null) {
21 static $debug;
23 if (!is_null($set)) {
24 $debug = $set;
25 } else {
26 return $debug ? true : false;
30 /**
31 * print_r avec un jolis formatage
33 * @param mix $v
35 function xdump($v) {
36 echo "\n"; print_r($v); echo "\n";
39 /**
40 * var_dump avec un jolis formatage
43 function xvdump() {
44 $args = func_get_args();
45 echo "\n"; call_user_func_array('var_dump',$args); echo "\n";
48 function backtrace($backtrace) {
49 $err_backtrace = " Backtrace :\n=============\n\r";
50 foreach($backtrace as $t) {
51 $err_backtrace.= 'File : '.((isset($t['file'])) ? $t['file']:'[PHP KERNEL]').((isset($t['line'])) ? ':'.$t['line'] : '') . "\n".
52 'Function : '.$t['function']."\n";
53 if (isset($t['class'])) {
54 $err_backtrace.= 'Class : '.$t['class']."\n";
56 if (isset($t['type'])) {
57 $err_backtrace.= 'Type : '.$t['type']."\n";
59 /*if (isset($t['args']) && !empty($t['args']) && $t['function'] != 'myErrorHandler') {
60 $err_backtrace.= '--== Args ==--'."\n";
61 ob_start();
62 var_dump($t['args']);
63 $err_backtrace.= "\t".str_replace("\n","\n\t",ob_get_contents());
64 ob_end_clean();
65 }*/
66 $err_backtrace.= "\n\n- - - - - - - - - - - - -\n\r";
68 return $err_backtrace;
71 /**
72 * RuntimeException encapsule une erreur (E_WARNING, E_NOTICE, ...) PHP dans un objet héritant de Exception
74 class myRuntimeException extends Exception {
76 /**
77 * Context d'éxécution fournit par PHP
78 * @var array
79 * @access protected
81 protected $_context = array();
82 public $_level;
84 /**
85 * Construit un objet RuntimeException
86 * @param int $level Le niveau de l'exception
87 * @param str $string La description de l'exception
88 * @param str $file Le nom du fichier où l'erreur s'est produite
89 * @param int $line La ligne du fichier où l'erreur s'est produite
90 * @param array $context Le context d'éxécution fournit par le gestionnaire d'erreur
91 * @access system
92 * @return void
94 function __construct($level, $string, $file, $line, $context){
95 parent::__construct($string.' in file '.$file.' at line '.$line);
96 // on modifie la ligne et le fichier pour ne pas avoir la ligne et le fichier d'où l'exception est levée
97 $this->file = $file;
98 $this->line = $line;
99 $this->_level = $level;
100 $this->_context = $context;
106 * Remplacant le gestionnaire d'erreur natif PHP. IL permet de lever une exception capturable dans un bloc catch
107 * pour les fonction/methode ne levant pas d'exception.
108 * @param int $level Niveau de l'erreur PHP
109 * @param str $string Description de l'erreur
110 * @param str $file Chemin d'accés au fichier dans lequel l'erreur s'est produite
111 * @param int $line Ligne de $file où l'erreur s'est produite
112 * @param array $context Un contexte d'éxécution fournit par PHP
113 * @access system
114 * @return void
117 function myErrorHandler($level, $string, $file, $line, $context){
119 throw new myRuntimeException($level, $string, $file, $line, $context);