2014-08-02 21:11:33 +02:00
< ? php
2016-07-12 00:07:14 +02:00
/**
* @ package Grav . Core
*
* @ copyright Copyright ( C ) 2014 - 2016 RocketTheme , LLC . All rights reserved .
* @ license MIT License ; see LICENSE file for details .
*/
2014-08-18 13:13:51 +02:00
namespace Grav ;
2014-08-02 21:11:33 +02:00
2015-02-14 18:38:01 +01:00
// Ensure vendor libraries exist
2014-08-20 13:51:03 +02:00
$autoload = __DIR__ . '/vendor/autoload.php' ;
if ( ! is_file ( $autoload )) {
2016-03-18 08:18:13 +01:00
die ( " Please run: <i>bin/grav install</i> " );
2014-08-20 13:51:03 +02:00
}
2014-08-06 20:46:49 +02:00
2016-12-17 15:07:40 +01:00
if ( PHP_SAPI == 'cli-server' ) {
if ( ! isset ( $_SERVER [ 'PHP_CLI_ROUTER' ])) {
die ( " PHP webserver requires a router to run Grav, please use: <pre>php -S { $_SERVER [ " SERVER_NAME " ] } : { $_SERVER [ " SERVER_PORT " ] } system/router.php</pre> " );
}
}
2014-08-18 13:13:51 +02:00
use Grav\Common\Grav ;
2016-06-11 23:27:34 +02:00
use RocketTheme\Toolbox\Event\Event ;
2014-08-02 21:11:33 +02:00
2014-08-20 11:18:26 +02:00
// Register the auto-loader.
2014-08-20 13:51:03 +02:00
$loader = require_once $autoload ;
2014-08-02 21:11:33 +02:00
2015-12-28 18:46:14 +01:00
if ( version_compare ( $ver = PHP_VERSION , $req = GRAV_PHP_MIN , '<' )) {
2016-03-17 20:33:32 +01:00
die ( sprintf ( 'You are running PHP %s, but Grav needs at least <strong>PHP %s</strong> to run.' , $ver , $req ));
2015-12-28 18:46:14 +01:00
}
2015-02-14 18:38:01 +01:00
// Set timezone to default, falls back to system if php.ini not set
date_default_timezone_set ( @ date_default_timezone_get ());
2014-08-02 21:11:33 +02:00
2015-09-10 20:49:38 +02:00
// Set internal encoding if mbstring loaded
2016-03-17 21:13:24 +01:00
if ( ! extension_loaded ( 'mbstring' )) {
2016-03-17 20:33:32 +01:00
die ( " 'mbstring' extension is not loaded. This is required for Grav to run correctly " );
2015-09-10 20:49:38 +02:00
}
mb_internal_encoding ( 'UTF-8' );
2015-02-14 18:38:01 +01:00
// Get the Grav instance
2014-08-18 13:13:51 +02:00
$grav = Grav :: instance (
2014-09-04 02:43:15 +02:00
array (
2014-10-14 06:23:13 +02:00
'loader' => $loader
2014-09-04 02:43:15 +02:00
)
2014-08-18 13:13:51 +02:00
);
2015-02-14 18:38:01 +01:00
// Process the page
2014-08-06 11:51:49 +02:00
try {
$grav -> process ();
} catch ( \Exception $e ) {
2016-06-11 23:27:34 +02:00
$grav -> fireEvent ( 'onFatalException' , new Event ([ 'exception' => $e ]));
2014-08-06 11:51:49 +02:00
throw $e ;
}