A small number of PHP-sanity things (eg don't silently ignore errors) to be included right at the very start of index.php and tests/bootstrap.phpautocomplete
parent
eecd35d175
commit
2197b15012
@ -0,0 +1,63 @@ |
||||
<?php declare(strict_types=1); |
||||
/* |
||||
* A small number of PHP-sanity things (eg don't silently ignore errors) to |
||||
* be included right at the very start of index.php and tests/bootstrap.php |
||||
*/ |
||||
|
||||
$min_php = "7.3"; |
||||
if (version_compare(phpversion(), $min_php, ">=") === false) { |
||||
print " |
||||
Shimmie does not support versions of PHP lower than $min_php |
||||
(PHP reports that it is version ".phpversion()."). |
||||
If your web host is running an older version, they are dangerously out of |
||||
date and you should plan on moving elsewhere. |
||||
"; |
||||
exit; |
||||
} |
||||
|
||||
# ini_set('zend.assertions', '1'); // generate assertions |
||||
ini_set('assert.exception', '1'); // throw exceptions when failed |
||||
set_error_handler(function ($errNo, $errStr) { |
||||
// Should we turn ALL notices into errors? PHP allows a lot of |
||||
// terrible things to happen by default... |
||||
if (strpos($errStr, 'Use of undefined constant ') === 0) { |
||||
throw new Exception("PHP Error#$errNo: $errStr"); |
||||
} else { |
||||
return false; |
||||
} |
||||
}); |
||||
|
||||
ob_start(); |
||||
|
||||
if (PHP_SAPI === 'cli' || PHP_SAPI == 'phpdbg') { |
||||
if (isset($_SERVER['REMOTE_ADDR'])) { |
||||
die("CLI with remote addr? Confused, not taking the risk."); |
||||
} |
||||
$_SERVER['REMOTE_ADDR'] = "0.0.0.0"; |
||||
$_SERVER['HTTP_HOST'] = "<cli command>"; |
||||
} |
||||
|
||||
function die_nicely($title, $body, $code=0) |
||||
{ |
||||
print("<!DOCTYPE html> |
||||
<html lang='en'> |
||||
<head> |
||||
<title>Shimmie</title> |
||||
<link rel=\"shortcut icon\" href=\"ext/static_files/static/favicon.ico\"> |
||||
<link rel=\"stylesheet\" href=\"ext/static_files/style.css\" type=\"text/css\"> |
||||
</head> |
||||
<body> |
||||
<div id=\"installer\"> |
||||
<h1>Shimmie</h1> |
||||
<h3>$title</h3> |
||||
<div class=\"container\"> |
||||
$body |
||||
</div> |
||||
</div> |
||||
</body> |
||||
</html>"); |
||||
if ($code != 0) { |
||||
http_response_code(500); |
||||
} |
||||
exit($code); |
||||
} |
Loading…
Reference in new issue