grav/index.php

43 lines
1.1 KiB
PHP
Raw Normal View History

2014-08-02 21:11:33 +02:00
<?php
2014-08-18 13:13:51 +02:00
namespace Grav;
2014-08-02 21:11:33 +02:00
2014-08-06 20:46:49 +02:00
if (version_compare($ver = PHP_VERSION, $req = '5.4.0', '<')) {
2015-02-18 20:24:35 +01:00
throw new \RuntimeException(sprintf('You are running PHP %s, but Grav needs at least <strong>PHP %s</strong> to run.', $ver, $req));
2014-08-06 20:46:49 +02:00
}
2015-02-14 18:38:01 +01:00
// Ensure vendor libraries exist
$autoload = __DIR__ . '/vendor/autoload.php';
if (!is_file($autoload)) {
2015-02-18 20:24:35 +01:00
throw new \RuntimeException("Please run: <i>bin/grav install</i>");
}
2014-08-06 20:46:49 +02:00
2014-08-18 13:13:51 +02:00
use Grav\Common\Grav;
2014-08-02 21:11:33 +02:00
// Register the auto-loader.
$loader = require_once $autoload;
2014-08-02 21:11:33 +02: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
if (!extension_loaded('mbstring')) {
throw new \RuntimeException("'mbstring' extension is not loaded. This is required for Grav to run correctly");
}
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(
array(
'loader' => $loader
)
2014-08-18 13:13:51 +02:00
);
2015-02-14 18:38:01 +01:00
// Process the page
try {
$grav->process();
} catch (\Exception $e) {
2014-08-19 17:45:42 +02:00
$grav->fireEvent('onFatalException');
throw $e;
}
2014-08-02 21:11:33 +02:00