require_once BASE_DIR . '/vendor/Slim-Extras/Log Writers/TimestampLogFileWriter.php'; $app = new Slim(array('mode' => defined('PRODUCTION') ? 'production' : 'development', 'debug' => false, 'log.enabled' => true, 'log.writer' => new TimestampLogFileWriter(array('path' => BASE_DIR, 'name_format' => '\\s\\l\\i\\m\\_\\l\\o\\g')))); $app->configureMode('development', function () use($app) { $app->config(array('debug' => true)); }); $app->configureMode('production', function () use($app) { error_reporting(0); $app->notFound(function () use($app) { $page = new ErrorController(404); $page->render(); }); $app->error(function (Exception $e) use($app) { $app->response()->status(500); if (!$app->request()->isAjax()) { $page = new ErrorController(500); $page->render(); } $app->stop(); if (file_exists(BASE_DIR . '/.gbemail')) { foreach (explode('\\n', file_get_contents(BASE_DIR . '/.gbemail')) as $email) { mail(trim($email), "GetchaBooks Error", get_error_message($e)); } } }); }); $app->hook('slim.before', function () use($app) { global $referrers; $request = $app->request(); define('BASE_URL', $request->getUrl() . $request->getRootUri() . '/'); define('CURRENT_URL', $request->getUrl() . $request->getPath()); define('MOBILE_DEVICE', strpos(strtolower($request->getUserAgent()), 'mobile') !== false);
ini_set('display_errors', 1); define("APPPATH", realpath(__DIR__ . "/../app") . DIRECTORY_SEPARATOR); require_once APPPATH . "/ClassLoader.php"; system\core\ClassLoader::registerDir(APPPATH . "/models/lib"); system\core\ClassLoader::registerDir(APPPATH . "/models"); system\core\ClassLoader::registerDir(APPPATH . "/models/util"); system\core\ClassLoader::registerDir(APPPATH . "/controllers"); system\core\ClassLoader::registerDir(APPPATH . "/views"); system\core\ClassLoader::registerDir(APPPATH . "/views/helper"); system\core\ClassLoader::registerDir(APPPATH . "/views/util"); if (!empty($_SERVER["PATH_INFO"])) { $path = $_SERVER["PATH_INFO"]; } else { $controller = new ErrorController(); $controller->render($_GET, 400, "PATH_INFO doesn't exist"); exit; } if (preg_match("!/item/([0-9]+)/?!", $path, $match)) { $_GET["id"] = $match[1]; $controller = new ItemController(); $controller->detail($_GET); } elseif (preg_match("!/items/?(.?+)!", $path, $match)) { $controller = new ItemController(); $controller->search($_GET); } elseif (preg_match("!/categories/?(.?+)!", $path, $match)) { $controller = new CategoryController(); $controller->search($_GET); } else { $controller = new ErrorController(); $controller->render($_GET, 404, "Request URL is no longer available"); }