Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 2 |
|
0.00% |
0 / 3 |
CRAP | |
0.00% |
0 / 9 |
AssertionError | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 4 |
__construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 4 |
|||
Handle | |
0.00% |
0 / 1 |
|
0.00% |
0 / 2 |
30 | |
0.00% |
0 / 5 |
register | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 2 |
|||
anonymous function | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 1 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\Component\Assertion\Handle. | |
* | |
* For PHP 5 this contains \AssertionError as well. | |
*/ | |
namespace { | |
if (!class_exists('AssertionError', FALSE)) { | |
/** | |
* Emulates PHP 7 AssertionError as closely as possible. | |
* | |
* We force this class to exist at the root namespace for PHP 5. | |
* This class exists natively in PHP 7. Note that in PHP 7 it extends from | |
* Error, not Exception, but that isn't possible for PHP 5 - all exceptions | |
* must extend from exception. | |
*/ | |
class AssertionError extends Exception { | |
/** | |
* {@inheritdoc} | |
*/ | |
public function __construct($message = '', $code = 0, Exception $previous = NULL, $file = '', $line = 0) { | |
parent::__construct($message, $code, $previous); | |
// Preserve the filename and line number of the assertion failure. | |
$this->file = $file; | |
$this->line = $line; | |
} | |
} | |
} | |
} | |
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) { | |
// 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); | |
} | |
} | |
} | |
} |