1 /* 2 +----------------------------------------------------------------------+ 3 | Copyright (c) The PHP Group | 4 +----------------------------------------------------------------------+ 5 | This source file is subject to version 3.01 of the PHP license, | 6 | that is bundled with this package in the file LICENSE, and is | 7 | available through the world-wide-web at the following url: | 8 | https://www.php.net/license/3_01.txt | 9 | If you did not receive a copy of the PHP license and are unable to | 10 | obtain it through the world-wide-web, please send a note to | 11 | license@php.net so we can mail you a copy immediately. | 12 +----------------------------------------------------------------------+ 13 | Authors: Marcus Boerger <helly@php.net> | 14 +----------------------------------------------------------------------+ 15 */ 16 17 #ifdef HAVE_CONFIG_H 18 # include "config.h" 19 #endif 20 21 #include "php.h" 22 #include "zend_interfaces.h" 23 #include "zend_exceptions.h" 24 #include "spl_exceptions_arginfo.h" 25 26 #include "spl_exceptions.h" 27 28 PHPAPI zend_class_entry *spl_ce_LogicException; 29 PHPAPI zend_class_entry *spl_ce_BadFunctionCallException; 30 PHPAPI zend_class_entry *spl_ce_BadMethodCallException; 31 PHPAPI zend_class_entry *spl_ce_DomainException; 32 PHPAPI zend_class_entry *spl_ce_InvalidArgumentException; 33 PHPAPI zend_class_entry *spl_ce_LengthException; 34 PHPAPI zend_class_entry *spl_ce_OutOfRangeException; 35 PHPAPI zend_class_entry *spl_ce_RuntimeException; 36 PHPAPI zend_class_entry *spl_ce_OutOfBoundsException; 37 PHPAPI zend_class_entry *spl_ce_OverflowException; 38 PHPAPI zend_class_entry *spl_ce_RangeException; 39 PHPAPI zend_class_entry *spl_ce_UnderflowException; 40 PHPAPI zend_class_entry *spl_ce_UnexpectedValueException; 41 42 #define spl_ce_Exception zend_ce_exception 43 44 /* {{{ PHP_MINIT_FUNCTION(spl_exceptions) */ PHP_MINIT_FUNCTION(spl_exceptions)45PHP_MINIT_FUNCTION(spl_exceptions) 46 { 47 spl_ce_LogicException = register_class_LogicException(zend_ce_exception); 48 spl_ce_BadFunctionCallException = register_class_BadFunctionCallException(spl_ce_LogicException); 49 spl_ce_BadMethodCallException = register_class_BadMethodCallException(spl_ce_BadFunctionCallException); 50 spl_ce_DomainException = register_class_DomainException(spl_ce_LogicException); 51 spl_ce_InvalidArgumentException = register_class_InvalidArgumentException(spl_ce_LogicException); 52 spl_ce_LengthException = register_class_LengthException(spl_ce_LogicException); 53 spl_ce_OutOfRangeException = register_class_OutOfRangeException(spl_ce_LogicException); 54 55 spl_ce_RuntimeException = register_class_RuntimeException(zend_ce_exception); 56 spl_ce_OutOfBoundsException = register_class_OutOfBoundsException(spl_ce_RuntimeException); 57 spl_ce_OverflowException = register_class_OverflowException(spl_ce_RuntimeException); 58 spl_ce_RangeException = register_class_RangeException(spl_ce_RuntimeException); 59 spl_ce_UnderflowException = register_class_UnderflowException(spl_ce_RuntimeException); 60 spl_ce_UnexpectedValueException = register_class_UnexpectedValueException(spl_ce_RuntimeException); 61 62 return SUCCESS; 63 } 64 /* }}} */ 65