예제 #1
0
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);
예제 #2
0
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");
}