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) {
26 return $debug ?
true : false;
31 * print_r avec un jolis formatage
36 echo "\n"; print_r($v); echo "\n";
40 * var_dump avec un jolis formatage
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";
63 $err_backtrace.= "\t".str_replace("\n","\n\t",ob_get_contents());
66 $err_backtrace.= "\n\n- - - - - - - - - - - - -\n\r";
68 return $err_backtrace;
72 * RuntimeException encapsule une erreur (E_WARNING, E_NOTICE, ...) PHP dans un objet héritant de Exception
74 class myRuntimeException
extends Exception
{
77 * Context d'éxécution fournit par PHP
81 protected $_context = array();
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
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
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
117 function myErrorHandler($level, $string, $file, $line, $context){
119 throw new myRuntimeException($level, $string, $file, $line, $context);