"PHPSESSID", 'cookie_lifetime' => 0, 'gc_maxlifetime' => 5401, ]); } // ========== PHP (from configuration) ========== // Time zone if ($config['PHP']['default_timezone']) date_default_timezone_set($config['PHP']['default_timezone']); else date_default_timezone_set('Europe/Moscow'); // Errors if ($config['PHP']['display_errors']) ini_set('display_errors', $config['PHP']['display_errors']); else error_reporting(0); if ($config['PHP']['display_startup_errors']) ini_set('display_startup_errors', $config['PHP']['display_startup_errors']); if ($config['PHP']['log_errors']) ini_set('log_errors', $config['PHP']['log_errors']); ini_set('error_log', VAR_PATH.'/log/php-'.date('Y-m').'.log'); unset($config['PHP']); // ========== SLIM ========== $app = new \Slim\Slim($config['Slim']); $app->start_time = microtime(true); $app->config('app', $config['App']); $app->view()->setData('config', $app->config('app')); require APP_PATH.'/src/dependencies.php'; require APP_PATH.'/src/middlewares.php'; require APP_PATH.'/src/routes.php'; // Error handler $app->error(function (\Exception $e) use ($app) { $app->getLog()->error($e); $app->render('errors/error.twig'); }); // CORS for development env if ($development) { header("Access-Control-Allow-Origin: *"); header('Access-Control-Allow-Credentials: true'); header('Access-Control-Max-Age: 0'); header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, PATCH, OPTIONS'); header('Access-Control-Allow-Headers: X-Debug, X-Requested-With, Content-Type, Accept, Origin, Authorization, Access-Token'); header('Access-Control-Expose-Headers: Authorization, Access-Token'); } $app->run();