annotate core/lib/Drupal/Component/Assertion/Handle.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author |
Chris Cannam |
date |
Thu, 28 Feb 2019 13:21:36 +0000 |
parents |
4c8ae668cc8c |
children |
|
rev |
line source |
Chris@0
|
1 <?php
|
Chris@0
|
2
|
Chris@0
|
3 namespace Drupal\Component\Assertion;
|
Chris@0
|
4
|
Chris@0
|
5 /**
|
Chris@0
|
6 * Handler for runtime assertion failures.
|
Chris@0
|
7 *
|
Chris@0
|
8 * This class allows PHP 5.x to throw exceptions on runtime assertion fails
|
Chris@0
|
9 * in the same manner as PHP 7, and sets the ASSERT_EXCEPTION flag to TRUE
|
Chris@0
|
10 * for the PHP 7 runtime.
|
Chris@0
|
11 *
|
Chris@0
|
12 * @ingroup php_assert
|
Chris@0
|
13 */
|
Chris@0
|
14 class Handle {
|
Chris@0
|
15
|
Chris@0
|
16 /**
|
Chris@0
|
17 * Registers uniform assertion handling.
|
Chris@0
|
18 */
|
Chris@0
|
19 public static function register() {
|
Chris@0
|
20 // Since we're using exceptions, turn error warnings off.
|
Chris@0
|
21 assert_options(ASSERT_WARNING, FALSE);
|
Chris@0
|
22
|
Chris@0
|
23 if (version_compare(PHP_VERSION, '7.0.0-dev') < 0) {
|
Chris@0
|
24 if (!class_exists('AssertionError', FALSE)) {
|
Chris@0
|
25 require __DIR__ . '/global_namespace_php5.php';
|
Chris@0
|
26 }
|
Chris@0
|
27 // PHP 5 - create a handler to throw the exception directly.
|
Chris@0
|
28 assert_options(ASSERT_CALLBACK, function ($file = '', $line = 0, $code = '', $message = '') {
|
Chris@0
|
29 if (empty($message)) {
|
Chris@0
|
30 $message = $code;
|
Chris@0
|
31 }
|
Chris@0
|
32 throw new \AssertionError($message, 0, NULL, $file, $line);
|
Chris@0
|
33 });
|
Chris@0
|
34 }
|
Chris@0
|
35 else {
|
Chris@0
|
36 // PHP 7 - just turn exception throwing on.
|
Chris@0
|
37 assert_options(ASSERT_EXCEPTION, TRUE);
|
Chris@0
|
38 }
|
Chris@0
|
39 }
|
Chris@0
|
40
|
Chris@0
|
41 }
|