[ Index ]
 

Code source de eZ Publish 3.9.0

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/kernel/setup/ -> PEAR.php (source)

   1  <?php
   2  //
   3  // +----------------------------------------------------------------------+
   4  // | PHP Version 4                                                        |
   5  // +----------------------------------------------------------------------+
   6  // | Copyright (c) 1997-2002 The PHP Group                                |
   7  // +----------------------------------------------------------------------+
   8  // | This source file is subject to version 2.0 of the PHP license,       |
   9  // | that is bundled with this package in the file LICENSE, and is        |
  10  // | available at through the world-wide-web at                           |
  11  // | http://www.php.net/license/2_02.txt.                                 |
  12  // | If you did not receive a copy of the PHP license and are unable to   |
  13  // | obtain it through the world-wide-web, please send a note to          |
  14  // | license@php.net so we can mail you a copy immediately.               |
  15  // +----------------------------------------------------------------------+
  16  // | Authors: Sterling Hughes <sterling@php.net>                          |
  17  // |          Stig Bakken <ssb@fast.no>                                   |
  18  // |          Tomas V.V.Cox <cox@idecnet.com>                             |
  19  // +----------------------------------------------------------------------+
  20  //
  21  // $Id: PEAR.php,v 1.32.2.2 2002/04/09 19:04:07 ssb Exp $
  22  //
  23  
  24  define('PEAR_ERROR_RETURN',   1);
  25  define('PEAR_ERROR_PRINT',    2);
  26  define('PEAR_ERROR_TRIGGER',  4);
  27  define('PEAR_ERROR_DIE',      8);
  28  define('PEAR_ERROR_CALLBACK', 16);
  29  
  30  if (substr(PHP_OS, 0, 3) == 'WIN') {
  31      define('OS_WINDOWS', true);
  32      define('OS_UNIX',    false);
  33      define('PEAR_OS',    'Windows');
  34  } else {
  35      define('OS_WINDOWS', false);
  36      define('OS_UNIX',    true);
  37      define('PEAR_OS',    'Unix'); // blatant assumption
  38  }
  39  
  40  $GLOBALS['_PEAR_default_error_mode']     = PEAR_ERROR_RETURN;
  41  $GLOBALS['_PEAR_default_error_options']  = E_USER_NOTICE;
  42  $GLOBALS['_PEAR_default_error_callback'] = '';
  43  $GLOBALS['_PEAR_destructor_object_list'] = array();
  44  
  45  //
  46  // Tests needed: - PEAR inheritance
  47  //
  48  
  49  /**
  50   * Base class for other PEAR classes.  Provides rudimentary
  51   * emulation of destructors.
  52   *
  53   * If you want a destructor in your class, inherit PEAR and make a
  54   * destructor method called _yourclassname (same name as the
  55   * constructor, but with a "_" prefix).  Also, in your constructor you
  56   * have to call the PEAR constructor: $this->PEAR();.
  57   * The destructor method will be called without parameters.  Note that
  58   * at in some SAPI implementations (such as Apache), any output during
  59   * the request shutdown (in which destructors are called) seems to be
  60   * discarded.  If you need to get any debug information from your
  61   * destructor, use error_log(), syslog() or something similar.
  62   *
  63   * @since PHP 4.0.2
  64   * @author Stig Bakken <ssb@fast.no>
  65   */
  66  class PEAR
  67  {
  68      // {{{ properties
  69  
  70      /**
  71       * Whether to enable internal debug messages.
  72       *
  73       * @var     bool
  74       * @access  private
  75       */
  76      var $_debug = false;
  77  
  78      /**
  79       * Default error mode for this object.
  80       *
  81       * @var     int
  82       * @access  private
  83       */
  84      var $_default_error_mode = null;
  85  
  86      /**
  87       * Default error options used for this object when error mode
  88       * is PEAR_ERROR_TRIGGER.
  89       *
  90       * @var     int
  91       * @access  private
  92       */
  93      var $_default_error_options = null;
  94  
  95      /**
  96       * Default error handler (callback) for this object, if error mode is
  97       * PEAR_ERROR_CALLBACK.
  98       *
  99       * @var     string
 100       * @access  private
 101       */
 102      var $_default_error_handler = '';
 103  
 104      /**
 105       * Which class to use for error objects.
 106       *
 107       * @var     string
 108       * @access  private
 109       */
 110      var $_error_class = 'PEAR_Error';
 111  
 112      /**
 113       * An array of expected errors.
 114       *
 115       * @var     array
 116       * @access  private
 117       */
 118      var $_expected_errors = array();
 119  
 120      // }}}
 121  
 122      // {{{ constructor
 123  
 124      /**
 125       * Constructor.  Registers this object in
 126       * $_PEAR_destructor_object_list for destructor emulation if a
 127       * destructor object exists.
 128       *
 129       * @param string      (optional) which class to use for error objects,
 130       *                    defaults to PEAR_Error.
 131       * @access public
 132       * @return void
 133       */
 134      function PEAR($error_class = null)
 135      {
 136          $classname = get_class($this);
 137          if ($this->_debug) {
 138              print "PEAR constructor called, class=$classname\n";
 139          }
 140          if ($error_class !== null) {
 141              $this->_error_class = $error_class;
 142          }
 143          while ($classname) {
 144              $destructor = "_$classname";
 145              if (method_exists($this, $destructor)) {
 146                  global $_PEAR_destructor_object_list;
 147                  $_PEAR_destructor_object_list[] = &$this;
 148                  break;
 149              } else {
 150                  $classname = get_parent_class($classname);
 151              }
 152          }
 153      }
 154  
 155      // }}}
 156      // {{{ destructor
 157  
 158      /**
 159       * Destructor (the emulated type of...).  Does nothing right now,
 160       * but is included for forward compatibility, so subclass
 161       * destructors should always call it.
 162       *
 163       * See the note in the class desciption about output from
 164       * destructors.
 165       *
 166       * @access public
 167       * @return void
 168       */
 169      function _PEAR() {
 170          if ($this->_debug) {
 171              printf("PEAR destructor called, class=%s\n", get_class($this));
 172          }
 173      }
 174  
 175      // }}}
 176      // {{{ isError()
 177  
 178      /**
 179       * Tell whether a value is a PEAR error.
 180       *
 181       * @param   mixed   the value to test
 182       * @access  public
 183       * @return  bool    true if parameter is an error
 184       */
 185      function isError($data) {
 186          return (bool)(is_object($data) &&
 187                        (get_class($data) == 'pear_error' ||
 188                        is_subclass_of($data, 'pear_error')));
 189      }
 190  
 191      // }}}
 192      // {{{ setErrorHandling()
 193  
 194      /**
 195       * Sets how errors generated by this DB object should be handled.
 196       * Can be invoked both in objects and statically.  If called
 197       * statically, setErrorHandling sets the default behaviour for all
 198       * PEAR objects.  If called in an object, setErrorHandling sets
 199       * the default behaviour for that object.
 200       *
 201       * @param int $mode
 202       *        One of PEAR_ERROR_RETURN, PEAR_ERROR_PRINT,
 203       *        PEAR_ERROR_TRIGGER, PEAR_ERROR_DIE or
 204       *        PEAR_ERROR_CALLBACK.
 205       *
 206       * @param mixed $options
 207       *        When $mode is PEAR_ERROR_TRIGGER, this is the error level (one
 208       *        of E_USER_NOTICE, E_USER_WARNING or E_USER_ERROR).
 209       *
 210       *        When $mode is PEAR_ERROR_CALLBACK, this parameter is expected
 211       *        to be the callback function or method.  A callback
 212       *        function is a string with the name of the function, a
 213       *        callback method is an array of two elements: the element
 214       *        at index 0 is the object, and the element at index 1 is
 215       *        the name of the method to call in the object.
 216       *
 217       *        When $mode is PEAR_ERROR_PRINT or PEAR_ERROR_DIE, this is
 218       *        a printf format string used when printing the error
 219       *        message.
 220       *
 221       * @access public
 222       * @return void
 223       * @see PEAR_ERROR_RETURN
 224       * @see PEAR_ERROR_PRINT
 225       * @see PEAR_ERROR_TRIGGER
 226       * @see PEAR_ERROR_DIE
 227       * @see PEAR_ERROR_CALLBACK
 228       *
 229       * @since PHP 4.0.5
 230       */
 231  
 232      function setErrorHandling($mode = null, $options = null)
 233      {
 234          if (isset($this)) {
 235              $setmode     = &$this->_default_error_mode;
 236              $setoptions  = &$this->_default_error_options;
 237              //$setcallback = &$this->_default_error_callback;
 238          } else {
 239              $setmode     = &$GLOBALS['_PEAR_default_error_mode'];
 240              $setoptions  = &$GLOBALS['_PEAR_default_error_options'];
 241              //$setcallback = &$GLOBALS['_PEAR_default_error_callback'];
 242          }
 243  
 244          switch ($mode) {
 245              case PEAR_ERROR_RETURN:
 246              case PEAR_ERROR_PRINT:
 247              case PEAR_ERROR_TRIGGER:
 248              case PEAR_ERROR_DIE:
 249              case null:
 250                  $setmode = $mode;
 251                  $setoptions = $options;
 252                  break;
 253  
 254              case PEAR_ERROR_CALLBACK:
 255                  $setmode = $mode;
 256                  if ((is_string($options) && function_exists($options)) ||
 257                      (is_array($options) && method_exists(@$options[0], @$options[1])))
 258                  {
 259                      $setoptions = $options;
 260                  } else {
 261                      trigger_error("invalid error callback", E_USER_WARNING);
 262                  }
 263                  break;
 264  
 265              default:
 266                  trigger_error("invalid error mode", E_USER_WARNING);
 267                  break;
 268          }
 269      }
 270  
 271      // }}}
 272      // {{{ expectError()
 273  
 274      /**
 275       * This method is used to tell which errors you expect to get.
 276       * Expected errors are always returned with error mode
 277       * PEAR_ERROR_RETURN.  Expected error codes are stored in a stack,
 278       * and this method pushes a new element onto it.  The list of
 279       * expected errors are in effect until they are popped off the
 280       * stack with the popExpect() method.
 281       *
 282       * @param mixed    a single error code or an array of error codes
 283       *                 to expect
 284       *
 285       * @return int     the new depth of the "expected errors" stack
 286       */
 287      function expectError($code = "*")
 288      {
 289          if (is_array($code)) {
 290              array_push($this->_expected_errors, $code);
 291          } else {
 292              array_push($this->_expected_errors, array($code));
 293          }
 294          return sizeof($this->_expected_errors);
 295      }
 296  
 297      // }}}
 298      // {{{ popExpect()
 299  
 300      /**
 301       * This method pops one element off the expected error codes
 302       * stack.
 303       *
 304       * @return array   the list of error codes that were popped
 305       */
 306      function popExpect()
 307      {
 308          return array_pop($this->_expected_errors);
 309      }
 310  
 311      // }}}
 312      // {{{ raiseError()
 313  
 314      /**
 315       * This method is a wrapper that returns an instance of the
 316       * configured error class with this object's default error
 317       * handling applied.  If the $mode and $options parameters are not
 318       * specified, the object's defaults are used.
 319       *
 320       * @param $message  a text error message or a PEAR error object
 321       *
 322       * @param $code     a numeric error code (it is up to your class
 323       *                  to define these if you want to use codes)
 324       *
 325       * @param $mode     One of PEAR_ERROR_RETURN, PEAR_ERROR_PRINT,
 326       *                  PEAR_ERROR_TRIGGER, PEAR_ERROR_DIE or
 327       *                  PEAR_ERROR_CALLBACK.
 328       *
 329       * @param $options  If $mode is PEAR_ERROR_TRIGGER, this parameter
 330       *                  specifies the PHP-internal error level (one of
 331       *                  E_USER_NOTICE, E_USER_WARNING or E_USER_ERROR).
 332       *                  If $mode is PEAR_ERROR_CALLBACK, this
 333       *                  parameter specifies the callback function or
 334       *                  method.  In other error modes this parameter
 335       *                  is ignored.
 336       *
 337       * @param $userinfo If you need to pass along for example debug
 338       *                  information, this parameter is meant for that.
 339       *
 340       * @param $error_class The returned error object will be instantiated
 341       *                  from this class, if specified.
 342       *
 343       * @param $skipmsg  If true, raiseError will only pass error codes,
 344       *                  the error message parameter will be dropped.
 345       *
 346       * @access public
 347       * @return object   a PEAR error object
 348       * @see PEAR::setErrorHandling
 349       * @since PHP 4.0.5
 350       */
 351      function &raiseError($message = null,
 352                           $code = null,
 353                           $mode = null,
 354                           $options = null,
 355                           $userinfo = null,
 356                           $error_class = null,
 357                           $skipmsg = false)
 358      {
 359          // The error is yet a PEAR error object
 360          if (is_object($message)) {
 361              $code        = $message->getCode();
 362              $userinfo    = $message->getUserInfo();
 363              $error_class = $message->getType();
 364              $message     = $message->getMessage();
 365          }
 366  
 367          if (isset($this) && isset($this->_expected_errors) && sizeof($this->_expected_errors) > 0 && sizeof($exp = end($this->_expected_errors))) {
 368              if ($exp[0] == "*" ||
 369                  (is_int(reset($exp)) && in_array($code, $exp)) ||
 370                  (is_string(reset($exp)) && in_array($message, $exp))) {
 371                  $mode = PEAR_ERROR_RETURN;
 372              }
 373          }
 374  
 375          if ($mode === null) {
 376              if (isset($this) && isset($this->_default_error_mode)) {
 377                  $mode = $this->_default_error_mode;
 378              } else {
 379                  $mode = $GLOBALS['_PEAR_default_error_mode'];
 380              }
 381          }
 382  
 383          if ($mode == PEAR_ERROR_TRIGGER && $options === null) {
 384              if (isset($this)) {
 385                  if (isset($this->_default_error_options)) {
 386                      $options = $this->_default_error_options;
 387                  }
 388              } else {
 389                  $options = $GLOBALS['_PEAR_default_error_options'];
 390              }
 391          }
 392  
 393          if ($mode == PEAR_ERROR_CALLBACK) {
 394              if (!is_string($options) &&
 395                  !(is_array($options) && sizeof($options) == 2 &&
 396                    is_object($options[0]) && is_string($options[1])))
 397              {
 398                  if (isset($this) && isset($this->_default_error_options)) {
 399                      $options = $this->_default_error_options;
 400                  } else {
 401                      $options = $GLOBALS['_PEAR_default_error_options'];
 402                  }
 403              }
 404          } else {
 405              if ($options === null) {
 406                  if (isset($this)) {
 407                      if (isset($this->_default_error_options)) {
 408                          $options = $this->_default_error_options;
 409                      }
 410                  } else {
 411                      $options = $GLOBALS['_PEAR_default_error_options'];
 412                  }
 413              }
 414          }
 415          if ($error_class !== null) {
 416              $ec = $error_class;
 417          } elseif (isset($this) && isset($this->_error_class)) {
 418              $ec = $this->_error_class;
 419          } else {
 420              $ec = 'PEAR_Error';
 421          }
 422          if ($skipmsg) {
 423              return new $ec($code, $mode, $options, $userinfo);
 424          } else {
 425              return new $ec($message, $code, $mode, $options, $userinfo);
 426          }
 427      }
 428  
 429      // }}}
 430      // {{{ pushErrorHandling()
 431  
 432      /**
 433      * Push a new error handler on top of the error handler options stack. With this
 434      * you can easily override the actual error handler for some code and restore
 435      * it later with popErrorHandling.
 436      *
 437      * @param $mode mixed (same as setErrorHandling)
 438      * @param $options mixed (same as setErrorHandling)
 439      *
 440      * @return bool Always true
 441      *
 442      * @see PEAR::setErrorHandling
 443      */
 444      function pushErrorHandling($mode, $options = null)
 445      {
 446          $stack = &$GLOBALS['_PEAR_error_handler_stack'];
 447          if (!is_array($stack)) {
 448              if (isset($this)) {
 449                  $def_mode = &$this->_default_error_mode;
 450                  $def_options = &$this->_default_error_options;
 451                  // XXX Used anywhere?
 452                  //$def_callback = &$this->_default_error_callback;
 453              } else {
 454                  $def_mode = &$GLOBALS['_PEAR_default_error_mode'];
 455                  $def_options = &$GLOBALS['_PEAR_default_error_options'];
 456                  // XXX Used anywhere?
 457                  //$def_callback = &$GLOBALS['_PEAR_default_error_callback'];
 458              }
 459              $stack = array();
 460              $stack[] = array($def_mode, $def_options);
 461          }
 462  
 463          if (isset($this)) {
 464              $this->setErrorHandling($mode, $options);
 465          } else {
 466              PEAR::setErrorHandling($mode, $options);
 467          }
 468          $stack[] = array($mode, $options);
 469          return true;
 470      }
 471  
 472      // }}}
 473      // {{{ popErrorHandling()
 474  
 475      /**
 476      * Pop the last error handler used
 477      *
 478      * @return bool Always true
 479      *
 480      * @see PEAR::pushErrorHandling
 481      */
 482      function popErrorHandling()
 483      {
 484          $stack = &$GLOBALS['_PEAR_error_handler_stack'];
 485          array_pop($stack);
 486          list($mode, $options) = $stack[sizeof($stack) - 1];
 487          if (isset($this)) {
 488              $this->setErrorHandling($mode, $options);
 489          } else {
 490              PEAR::setErrorHandling($mode, $options);
 491          }
 492          return true;
 493      }
 494  
 495      // }}}
 496  }
 497  
 498  // {{{ _PEAR_call_destructors()
 499  
 500  function _PEAR_call_destructors()
 501  {
 502      global $_PEAR_destructor_object_list;
 503      if (is_array($_PEAR_destructor_object_list) &&
 504          sizeof($_PEAR_destructor_object_list))
 505      {
 506          reset($_PEAR_destructor_object_list);
 507          while (list($k, $objref) = each($_PEAR_destructor_object_list)) {
 508              $classname = get_class($objref);
 509              while ($classname) {
 510                  $destructor = "_$classname";
 511                  if (method_exists($objref, $destructor)) {
 512                      $objref->$destructor();
 513                      break;
 514                  } else {
 515                      $classname = get_parent_class($classname);
 516                  }
 517              }
 518          }
 519          // Empty the object list to ensure that destructors are
 520          // not called more than once.
 521          $_PEAR_destructor_object_list = array();
 522      }
 523  }
 524  
 525  // }}}
 526  
 527  class PEAR_Error
 528  {
 529      // {{{ properties
 530  
 531      var $error_message_prefix = '';
 532      var $mode                 = PEAR_ERROR_RETURN;
 533      var $level                = E_USER_NOTICE;
 534      var $code                 = -1;
 535      var $message              = '';
 536      var $userinfo             = '';
 537  
 538      // Wait until we have a stack-groping function in PHP.
 539      //var $file    = '';
 540      //var $line    = 0;
 541  
 542  
 543      // }}}
 544      // {{{ constructor
 545  
 546      /**
 547       * PEAR_Error constructor
 548       *
 549       * @param $message error message
 550       *
 551       * @param $code (optional) error code
 552       *
 553       * @param $mode (optional) error mode, one of: PEAR_ERROR_RETURN,
 554       * PEAR_ERROR_PRINT, PEAR_ERROR_DIE, PEAR_ERROR_TRIGGER or
 555       * PEAR_ERROR_CALLBACK
 556       *
 557       * @param $level (optional) error level, _OR_ in the case of
 558       * PEAR_ERROR_CALLBACK, the callback function or object/method
 559       * tuple.
 560       *
 561       * @access public
 562       *
 563       */
 564      function PEAR_Error($message = 'unknown error', $code = null,
 565                          $mode = null, $options = null, $userinfo = null)
 566      {
 567          if ($mode === null) {
 568              $mode = PEAR_ERROR_RETURN;
 569          }
 570          $this->message   = $message;
 571          $this->code      = $code;
 572          $this->mode      = $mode;
 573          $this->userinfo  = $userinfo;
 574          if ($mode & PEAR_ERROR_CALLBACK) {
 575              $this->level = E_USER_NOTICE;
 576              $this->callback = $options;
 577          } else {
 578              if ($options === null) {
 579                  $options = E_USER_NOTICE;
 580              }
 581              $this->level = $options;
 582              $this->callback = null;
 583          }
 584          if ($this->mode & PEAR_ERROR_PRINT) {
 585              if (is_null($options) || is_int($options)) {
 586                  $format = "%s";
 587              } else {
 588                  $format = $options;
 589              }
 590              printf($format, $this->getMessage());
 591          }
 592          if ($this->mode & PEAR_ERROR_TRIGGER) {
 593              trigger_error($this->getMessage(), $this->level);
 594          }
 595          if ($this->mode & PEAR_ERROR_DIE) {
 596              $msg = $this->getMessage();
 597              if (is_null($options) || is_int($options)) {
 598                  $format = "%s";
 599                  if (substr($msg, -1) != "\n") {
 600                      $msg .= "\n";
 601                  }
 602              } else {
 603                  $format = $options;
 604              }
 605              die(sprintf($format, $msg));
 606          }
 607          if ($this->mode & PEAR_ERROR_CALLBACK) {
 608              if (is_string($this->callback) && strlen($this->callback)) {
 609                  call_user_func($this->callback, $this);
 610              } elseif (is_array($this->callback) &&
 611                        sizeof($this->callback) == 2 &&
 612                        is_object($this->callback[0]) &&
 613                        is_string($this->callback[1]) &&
 614                        strlen($this->callback[1])) {
 615                        @call_user_method($this->callback[1], $this->callback[0],
 616                                   $this);
 617              }
 618          }
 619      }
 620  
 621      // }}}
 622      // {{{ getMode()
 623  
 624      /**
 625       * Get the error mode from an error object.
 626       *
 627       * @return int error mode
 628       * @access public
 629       */
 630      function getMode() {
 631          return $this->mode;
 632      }
 633  
 634      // }}}
 635      // {{{ getCallback()
 636  
 637      /**
 638       * Get the callback function/method from an error object.
 639       *
 640       * @return mixed callback function or object/method array
 641       * @access public
 642       */
 643      function getCallback() {
 644          return $this->callback;
 645      }
 646  
 647      // }}}
 648      // {{{ getMessage()
 649  
 650  
 651      /**
 652       * Get the error message from an error object.
 653       *
 654       * @return  string  full error message
 655       * @access public
 656       */
 657      function getMessage ()
 658      {
 659          return ($this->error_message_prefix . $this->message);
 660      }
 661  
 662  
 663      // }}}
 664      // {{{ getCode()
 665  
 666      /**
 667       * Get error code from an error object
 668       *
 669       * @return int error code
 670       * @access public
 671       */
 672       function getCode()
 673       {
 674          return $this->code;
 675       }
 676  
 677      // }}}
 678      // {{{ getType()
 679  
 680      /**
 681       * Get the name of this error/exception.
 682       *
 683       * @return string error/exception name (type)
 684       * @access public
 685       */
 686      function getType ()
 687      {
 688          return get_class($this);
 689      }
 690  
 691      // }}}
 692      // {{{ getUserInfo()
 693  
 694      /**
 695       * Get additional user-supplied information.
 696       *
 697       * @return string user-supplied information
 698       * @access public
 699       */
 700      function getUserInfo ()
 701      {
 702          return $this->userinfo;
 703      }
 704  
 705      // }}}
 706      // {{{ getDebugInfo()
 707  
 708      /**
 709       * Get additional debug information supplied by the application.
 710       *
 711       * @return string debug information
 712       * @access public
 713       */
 714      function getDebugInfo ()
 715      {
 716          return $this->getUserInfo();
 717      }
 718  
 719      // }}}
 720      // {{{ addUserInfo()
 721  
 722      function addUserInfo($info)
 723      {
 724          if (empty($this->userinfo)) {
 725              $this->userinfo = $info;
 726          } else {
 727              $this->userinfo .= " ** $info";
 728          }
 729      }
 730  
 731      // }}}
 732      // {{{ toString()
 733  
 734      /**
 735       * Make a string representation of this object.
 736       *
 737       * @return string a string with an object summary
 738       * @access public
 739       */
 740      function toString() {
 741          $modes = array();
 742          $levels = array(E_USER_NOTICE  => 'notice',
 743                          E_USER_WARNING => 'warning',
 744                          E_USER_ERROR   => 'error');
 745          if ($this->mode & PEAR_ERROR_CALLBACK) {
 746              if (is_array($this->callback)) {
 747                  $callback = get_class($this->callback[0]) . '::' .
 748                      $this->callback[1];
 749              } else {
 750                  $callback = $this->callback;
 751              }
 752              return sprintf('[%s: message="%s" code=%d mode=callback '.
 753                             'callback=%s prefix="%s" info="%s"]',
 754                             get_class($this), $this->message, $this->code,
 755                             $callback, $this->error_message_prefix,
 756                             $this->userinfo);
 757          }
 758          if ($this->mode & PEAR_ERROR_CALLBACK) {
 759              $modes[] = 'callback';
 760          }
 761          if ($this->mode & PEAR_ERROR_PRINT) {
 762              $modes[] = 'print';
 763          }
 764          if ($this->mode & PEAR_ERROR_TRIGGER) {
 765              $modes[] = 'trigger';
 766          }
 767          if ($this->mode & PEAR_ERROR_DIE) {
 768              $modes[] = 'die';
 769          }
 770          if ($this->mode & PEAR_ERROR_RETURN) {
 771              $modes[] = 'return';
 772          }
 773          return sprintf('[%s: message="%s" code=%d mode=%s level=%s '.
 774                         'prefix="%s" info="%s"]',
 775                         get_class($this), $this->message, $this->code,
 776                         implode("|", $modes), $levels[$this->level],
 777                         $this->error_message_prefix,
 778                         $this->userinfo);
 779      }
 780  
 781      // }}}
 782  }
 783  
 784  register_shutdown_function("_PEAR_call_destructors");
 785  
 786  /*
 787   * Local Variables:
 788   * mode: php
 789   * tab-width: 4
 790   * c-basic-offset: 4
 791   * End:
 792   */
 793  ?>


Généré le : Sat Feb 24 10:30:04 2007 par Balluche grâce à PHPXref 0.7