41 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace Drupal\Component\Assertion;
 | |
| 
 | |
| /**
 | |
|  * Handler for runtime assertion failures.
 | |
|  *
 | |
|  * This class allows PHP 5.x to throw exceptions on runtime assertion fails
 | |
|  * in the same manner as PHP 7, and sets the ASSERT_EXCEPTION flag to TRUE
 | |
|  * for the PHP 7 runtime.
 | |
|  *
 | |
|  * @ingroup php_assert
 | |
|  */
 | |
| class Handle {
 | |
| 
 | |
|   /**
 | |
|    * Registers uniform assertion handling.
 | |
|    */
 | |
|   public static function register() {
 | |
|     // Since we're using exceptions, turn error warnings off.
 | |
|     assert_options(ASSERT_WARNING, FALSE);
 | |
| 
 | |
|     if (version_compare(PHP_VERSION, '7.0.0-dev') < 0) {
 | |
|       if (!class_exists('AssertionError', FALSE)) {
 | |
|         require __DIR__ . '/global_namespace_php5.php';
 | |
|       }
 | |
|       // PHP 5 - create a handler to throw the exception directly.
 | |
|       assert_options(ASSERT_CALLBACK, function($file = '', $line = 0, $code = '', $message = '') {
 | |
|         if (empty($message)) {
 | |
|           $message = $code;
 | |
|         }
 | |
|         throw new \AssertionError($message, 0, NULL, $file, $line);
 | |
|       });
 | |
|     }
 | |
|     else {
 | |
|       // PHP 7 - just turn exception throwing on.
 | |
|       assert_options(ASSERT_EXCEPTION, TRUE);
 | |
|     }
 | |
|   }
 | |
| 
 | |
| }
 | 
