public static DrupalKernel::bootEnvironment($app_root= NULL)
Setup a consistent PHP environment.
This method sets PHP environment options we want to be sure are set correctly for security or just saneness.
Parameters
string $app_root: (optional) The path to the application root as a string. If not supplied, the application root will be computed.
File
- core/lib/Drupal/Core/DrupalKernel.php, line 927
Class
- DrupalKernel
- The DrupalKernel class is the core of Drupal itself.
Namespace
Drupal\Core
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | public static function bootEnvironment( $app_root = NULL) { if ( static :: $isEnvironmentInitialized ) { return ; } // Determine the application root if it's not supplied. if ( $app_root === NULL) { $app_root = static ::guessApplicationRoot(); } // Include our bootstrap file. require_once $app_root . '/core/includes/bootstrap.inc' ; // Enforce E_STRICT, but allow users to set levels not part of E_STRICT. error_reporting (E_STRICT | E_ALL); // Override PHP settings required for Drupal to work properly. // sites/default/default.settings.php contains more runtime settings. // The .htaccess file contains settings that cannot be changed at runtime. // Use session cookies, not transparent sessions that puts the session id in // the query string. ini_set ( 'session.use_cookies' , '1' ); ini_set ( 'session.use_only_cookies' , '1' ); ini_set ( 'session.use_trans_sid' , '0' ); // Don't send HTTP headers using PHP's session handler. // Send an empty string to disable the cache limiter. ini_set ( 'session.cache_limiter' , '' ); // Use httponly session cookies. ini_set ( 'session.cookie_httponly' , '1' ); // Set sane locale settings, to ensure consistent string, dates, times and // numbers handling. setlocale(LC_ALL, 'C' ); // Detect string handling method. Unicode::check(); // Indicate that code is operating in a test child site. if (!defined( 'DRUPAL_TEST_IN_CHILD_SITE' )) { if ( $test_prefix = drupal_valid_test_ua()) { $test_db = new TestDatabase( $test_prefix ); // Only code that interfaces directly with tests should rely on this // constant; e.g., the error/exception handler conditionally adds further // error information into HTTP response headers that are consumed by // Simpletest's internal browser. define( 'DRUPAL_TEST_IN_CHILD_SITE' , TRUE); // Web tests are to be conducted with runtime assertions active. assert_options(ASSERT_ACTIVE, TRUE); // Now synchronize PHP 5 and 7's handling of assertions as much as // possible. Handle::register(); // Log fatal errors to the test site directory. ini_set ( 'log_errors' , 1); ini_set ( 'error_log' , $app_root . '/' . $test_db ->getTestSitePath() . '/error.log' ); // Ensure that a rewritten settings.php is used if opcache is on. ini_set ( 'opcache.validate_timestamps' , 'on' ); ini_set ( 'opcache.revalidate_freq' , 0); } else { // Ensure that no other code defines this. define( 'DRUPAL_TEST_IN_CHILD_SITE' , FALSE); } } // Set the Drupal custom error handler. set_error_handler( '_drupal_error_handler' ); set_exception_handler( '_drupal_exception_handler' ); static :: $isEnvironmentInitialized = TRUE; } |
Please login to continue.