66 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
/**
 | 
						|
 * @package    Grav.Core
 | 
						|
 *
 | 
						|
 * @copyright  Copyright (c) 2015 - 2021 Trilby Media, LLC. All rights reserved.
 | 
						|
 * @license    MIT License; see LICENSE file for details.
 | 
						|
 */
 | 
						|
 | 
						|
namespace Grav;
 | 
						|
 | 
						|
\define('GRAV_REQUEST_TIME', microtime(true));
 | 
						|
\define('GRAV_PHP_MIN', '7.3.6');
 | 
						|
 | 
						|
if (version_compare($ver = PHP_VERSION, $req = GRAV_PHP_MIN, '<')) {
 | 
						|
    die(sprintf('You are running PHP %s, but Grav needs at least <strong>PHP %s</strong> to run.', $ver, $req));
 | 
						|
}
 | 
						|
 | 
						|
if (PHP_SAPI === 'cli-server') {
 | 
						|
    $symfony_server = stripos(getenv('_'), 'symfony') !== false || stripos($_SERVER['SERVER_SOFTWARE'] ?? '', 'symfony') !== false || stripos($_ENV['SERVER_SOFTWARE'] ?? '', 'symfony') !== false;
 | 
						|
 | 
						|
    if (!isset($_SERVER['PHP_CLI_ROUTER']) && !$symfony_server) {
 | 
						|
        die("PHP webserver requires a router to run Grav, please use: <pre>php -S {$_SERVER['SERVER_NAME']}:{$_SERVER['SERVER_PORT']} system/router.php</pre>");
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
// Set timezone to default, falls back to system if php.ini not set
 | 
						|
date_default_timezone_set(@date_default_timezone_get());
 | 
						|
 | 
						|
// Set internal encoding.
 | 
						|
if (!\extension_loaded('mbstring')) {
 | 
						|
    die("'mbstring' extension is not loaded.  This is required for Grav to run correctly");
 | 
						|
}
 | 
						|
@ini_set('default_charset', 'UTF-8');
 | 
						|
mb_internal_encoding('UTF-8');
 | 
						|
 | 
						|
// Ensure vendor libraries exist
 | 
						|
$autoload = __DIR__ . '/vendor/autoload.php';
 | 
						|
if (!is_file($autoload)) {
 | 
						|
    die('Please run: <i>bin/grav install</i>');
 | 
						|
}
 | 
						|
 | 
						|
// Register the auto-loader.
 | 
						|
$loader = require $autoload;
 | 
						|
 | 
						|
use Grav\Common\Grav;
 | 
						|
use RocketTheme\Toolbox\Event\Event;
 | 
						|
 | 
						|
// Get the Grav instance
 | 
						|
$grav = Grav::instance(
 | 
						|
    array(
 | 
						|
        'loader' => $loader
 | 
						|
    )
 | 
						|
);
 | 
						|
 | 
						|
// Process the page
 | 
						|
try {
 | 
						|
    $grav->process();
 | 
						|
} catch (\Error $e) {
 | 
						|
    $grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
 | 
						|
    throw $e;
 | 
						|
} catch (\Exception $e) {
 | 
						|
    $grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
 | 
						|
    throw $e;
 | 
						|
}
 |