<?php /** * OpenSQLManager * * Free Database manager for Open Source Databases * * @author Timothy J. Warren * @copyright Copyright (c) 2012 * @link https://github.com/aviat4ion/OpenSQLManager * @license http://philsturgeon.co.uk/code/dbad-license */ // -------------------------------------------------------------------------- /** * Bootstrap file * * Initializes parent window and starts the GTK event loop */ // -------------------------------------------------------------------------- // Suppress errors that php-gtk puts out error_reporting(-1 & ~(E_STRICT)); // Set the stupid timezone so PHP shuts up. date_default_timezone_set('GMT'); // Don't set an arbitrary memory limit! ini_set('memory_limit', -1); // Set the current directory as the base for included files define('BASE_DIR', dirname(__FILE__).'/sys'); define('SETTINGS_DIR', dirname(__FILE__)); define('PROGRAM_NAME', 'OpenSQLManager'); define('VERSION', '0.1.0pre'); // -------------------------------------------------------------------------- /** * Log fatal errors */ function log_fatal() { // Catch the last error $error = error_get_last(); // types of errors that are fatal $fatal = array(E_ERROR, E_PARSE, E_RECOVERABLE_ERROR); // Log error. if(in_array($error['type'], $fatal)) { file_put_contents('errors.txt', print_r($error, TRUE), FILE_APPEND); } } register_shutdown_function('log_fatal'); // -------------------------------------------------------------------------- // Make sure php-gtk works if ( ! class_exists('gtk')) { trigger_error("PHP-gtk not found. Please load the php-gtk2 extension in your php.ini", E_USER_ERROR); die(); } // Make sure pdo exists if( ! class_exists('pdo')) { trigger_error("PHP support for PDO is required.", E_USER_ERROR); die(); } // -------------------------------------------------------------------------- /** * Error handler to convert errors to exceptions * * @param int $errno * @param string $errstr * @param string $errfile * @param int $errline * @throws ErrorException */ function exception_error_handler($errno, $errstr, $errfile, $errline) { throw new ErrorException($errstr, 0, $errno, $errfile, $errline); } // Do this after the two compatibility checks for cleaner output // Note that this will throw exceptions on notices set_error_handler("exception_error_handler", -1); // -------------------------------------------------------------------------- /** * Alias for require_once for array_map * * @param string $path * @return void */ if ( ! function_exists('do_include')) { function do_include($path) { require_once($path); } } // -------------------------------------------------------------------------- // Load everything so that we don't have to do requires later { array_map('do_include', glob(BASE_DIR . "/common/*.php")); array_map('do_include', glob(BASE_DIR . "/db/*.php")); array_map('do_include', glob(BASE_DIR . "/widgets/*.php")); array_map('do_include', glob(BASE_DIR . "/windows/*.php")); } // -------------------------------------------------------------------------- // Auto-load db drivers require_once(BASE_DIR . "/db/autoload.php"); // -------------------------------------------------------------------------- // Create the main window new Main(); // Start the GTK event loop GTK::main(); // End of index.php