diff options
-rw-r--r-- | App.php | 56 | ||||
-rw-r--r-- | Db.php | 2 | ||||
-rw-r--r-- | README | 37 |
3 files changed, 77 insertions, 18 deletions
@@ -12,7 +12,10 @@ class App * Fire up the application */ static public function init() - { + { + // Set custom error handler + set_error_handler("App::error_handler"); + @list($controller, $param, $action) = App::url(); if (empty($param)) { @@ -89,22 +92,49 @@ class App } - static function ok($msg) + static function json($msg) { - $ok = array('result' => 'ok', 'msg' => $msg); - $json = json_encode($ok); + $json = json_encode($msg); header("Content-Type: application/json"); header("Content-Length: " . strlen($json)); print $json; } + static function ok($msg) + { + $ok = array('result' => 'ok', 'msg' => $msg); + self::json($ok); + } + static function error($msg) { - $err = array('result' => 'error', 'msg' => $msg); - $json = json_encode($err); - header("Content-Type: application/json"); - header("Content-Length: " . strlen($json)); - print $json; + $err = array('result' => 'error', 'msg' => $msg); + self::json($msg); + self::log($msg); + } + + /** + * Log an error to our own logging system + */ + static function log($msg) + { + if (is_array($msg)) { + $msg = print_r($msg, true); + } + $c = self::conf("app.error_log"); + $file = realpath(__FILE__."/../../../../data/$c"); + if (!$file) { + return false; + } + $fh = fopen($file, "a+"); + fwrite($fh, $msg); + fclose($fh); + } + + static function error_handler($errno, $errstr, $errfile, $errline) + { + $str = sprintf("%s\t%s\t%s\t%s\n", date("d.m @ H:i:s"), basename($errfile), $errline, $errstr); + self::log($str); } /** @@ -124,14 +154,6 @@ class App list($loc, $lang) = explode("-", $_SERVER['HTTP_ACCEPT_LANGUAGE']); return sprintf("%s_%s", $loc, strtoupper($lang)); } - - static function log($msg) - { - if (is_array($msg)) { - $msg = print_r($msg, true); - } - syslog(LOG_ERR, $msg); - } public function delete($table, $where) { @@ -69,7 +69,7 @@ class Db $stmt = self::getInstance()->prepare($sql); $result = $stmt->execute($data); - + if (!$result) { $e = $stmt->errorInfo(); exit(App::error($e[2])); @@ -0,0 +1,37 @@ +MAIN - the simple PHP framework + +## Folder structure ## + +site: + public (this is the DocRoot for your site) + index.php + system (put all system support files in here) + lib + main + classes (store all your model files in here) + views (create a folder for each controller and an action.html file for every view) + data (a good place to store all your application data, logs, etc) + +## index.php ## + +A typical index.php using MAIN would look like this: +<?php + + $sysdir = realpath(dirname(__FILE__).'/../system'); + + set_include_path( + get_include_path() . PATH_SEPARATOR + . $sysdir . PATH_SEPARATOR + . "{$sysdir}/lib" . PATH_SEPARATOR + . "{$sysdir}/conf" . PATH_SEPARATOR + . "{$sysdir}/classes" . PATH_SEPARATOR + ); + + require_once "main/app.php"; + require_once "main/controller.php"; + $locale = App::locale(); + setlocale(LC_ALL, $locale); + session_start(); + App::init(); + +?> |