- Patch #581286 by David Strauss | moshe weitzman: fixed detection of CLI environments properly.

merge-requests/26/head
Dries Buytaert 2009-09-19 10:38:47 +00:00
parent 2bc3de6a4f
commit db81ff5205
3 changed files with 12 additions and 5 deletions

View File

@ -431,7 +431,7 @@ function drupal_override_server_variables($variables = array()) {
'REMOTE_ADDR' => '127.0.0.1', 'REMOTE_ADDR' => '127.0.0.1',
'REQUEST_METHOD' => 'GET', 'REQUEST_METHOD' => 'GET',
'SERVER_NAME' => NULL, 'SERVER_NAME' => NULL,
'SERVER_SOFTWARE' => 'PHP CLI', 'SERVER_SOFTWARE' => NULL,
'HTTP_USER_AGENT' => NULL, 'HTTP_USER_AGENT' => NULL,
); );
// Replace elements of the $_SERVER array, as appropriate. // Replace elements of the $_SERVER array, as appropriate.
@ -787,7 +787,7 @@ function drupal_page_is_cacheable($allow_caching = NULL) {
} }
return $allow_caching_static && ($_SERVER['REQUEST_METHOD'] == 'GET' || $_SERVER['REQUEST_METHOD'] == 'HEAD') return $allow_caching_static && ($_SERVER['REQUEST_METHOD'] == 'GET' || $_SERVER['REQUEST_METHOD'] == 'HEAD')
&& $_SERVER['SERVER_SOFTWARE'] !== 'PHP CLI'; && !drupal_is_cli();
} }
/** /**
@ -1546,7 +1546,7 @@ function _drupal_bootstrap($phase) {
require_once DRUPAL_ROOT . '/' . variable_get('lock_inc', 'includes/lock.inc'); require_once DRUPAL_ROOT . '/' . variable_get('lock_inc', 'includes/lock.inc');
lock_initialize(); lock_initialize();
if ($_SERVER['SERVER_SOFTWARE'] !== 'PHP CLI') { if (!drupal_is_cli()) {
ob_start(); ob_start();
drupal_page_header(); drupal_page_header();
} }
@ -1999,3 +1999,10 @@ function &drupal_static($name, $default_value = NULL, $reset = FALSE) {
function drupal_static_reset($name = NULL) { function drupal_static_reset($name = NULL) {
drupal_static($name, NULL, TRUE); drupal_static($name, NULL, TRUE);
} }
/**
* Detect whether the current script is running in a command-line environment.
*/
function drupal_is_cli() {
return (!isset($_SERVER['SERVER_SOFTWARE']) && (php_sapi_name() == 'cli' || (is_numeric($_SERVER['argc']) && $_SERVER['argc'] > 0)));
}

View File

@ -62,7 +62,7 @@ $cmd = 'index.php';
$_SERVER['HTTP_HOST'] = 'default'; $_SERVER['HTTP_HOST'] = 'default';
$_SERVER['PHP_SELF'] = '/index.php'; $_SERVER['PHP_SELF'] = '/index.php';
$_SERVER['REMOTE_ADDR'] = '127.0.0.1'; $_SERVER['REMOTE_ADDR'] = '127.0.0.1';
$_SERVER['SERVER_SOFTWARE'] = 'PHP CLI'; $_SERVER['SERVER_SOFTWARE'] = NULL;
$_SERVER['REQUEST_METHOD'] = 'GET'; $_SERVER['REQUEST_METHOD'] = 'GET';
$_SERVER['QUERY_STRING'] = ''; $_SERVER['QUERY_STRING'] = '';
$_SERVER['PHP_SELF'] = $_SERVER['REQUEST_URI'] = '/'; $_SERVER['PHP_SELF'] = $_SERVER['REQUEST_URI'] = '/';

View File

@ -24,7 +24,7 @@ if ($args['execute-batch']) {
} }
else { else {
// Run administrative functions as CLI. // Run administrative functions as CLI.
simpletest_script_init("PHP CLI"); simpletest_script_init(NULL);
} }
// Bootstrap to perform initial validation or other operations. // Bootstrap to perform initial validation or other operations.