public function __construct() { $this['config'] = Xhgui_Config::all(); $this->_slimApp(); $this->_services(); $this->_controllers(); }
/** * Creates a simplified URL given a standard URL. * Does the following transformations: * * - Remove numeric values after =. * * @param string $url * @return string */ public static function simpleUrl($url) { $callable = Xhgui_Config::read('profiler.simple_url'); if (is_callable($callable)) { return call_user_func($callable, $url); } return preg_replace('/\\=\\d+/', '', $url); }
/** * Connect to mongo, and get the configured database * * Will return the active database if called multiple times. * * @return MongoDb */ public static function connect($host = null, $db = null) { if (!empty(self::$_db)) { return self::$_db; } if (empty($host)) { $host = Xhgui_Config::read('db.host'); } if (empty($db)) { $db = Xhgui_Config::read('db.db'); } try { self::$_mongo = new MongoClient($host); self::$_db = self::$_mongo->{$db}; return self::$_db; } catch (Exception $e) { echo "Unable to connect to Mongo<br>\n"; echo "Exception: " . $e->getMessage() . "<br>\n"; echo "You may want to ensure that Mongo has been started, and that the config file has the right connection information"; exit; } }
flush(); if (!defined('XHGUI_ROOT_DIR')) { require dirname(dirname(__FILE__)) . '/src/bootstrap.php'; } $uri = array_key_exists('REQUEST_URI', $_SERVER) ? $_SERVER['REQUEST_URI'] : null; if (empty($uri) && isset($_SERVER['argv'])) { $cmd = basename($_SERVER['argv'][0]); $uri = $cmd . ' ' . implode(' ', array_slice($_SERVER['argv'], 1)); } $time = array_key_exists('REQUEST_TIME', $_SERVER) ? $_SERVER['REQUEST_TIME'] : time(); $requestTimeFloat = explode('.', $_SERVER['REQUEST_TIME_FLOAT']); if (!isset($requestTimeFloat[1])) { $requestTimeFloat[1] = 0; } if (Xhgui_Config::read('save.handler') === 'file') { $requestTs = array('sec' => $time, 'usec' => 0); $requestTsMicro = array('sec' => $requestTimeFloat[0], 'usec' => $requestTimeFloat[1]); } else { $requestTs = new MongoDate($time); $requestTsMicro = new MongoDate($requestTimeFloat[0], $requestTimeFloat[1]); } $data['meta'] = array('url' => $uri, 'SERVER' => $_SERVER, 'get' => $_GET, 'env' => $_ENV, 'simple_url' => Xhgui_Util::simpleUrl($uri), 'request_ts' => $requestTs, 'request_ts_micro' => $requestTsMicro, 'request_date' => date('Y-m-d', $time)); try { $config = Xhgui_Config::all(); $config += array('db.options' => array()); $saver = Xhgui_Saver::factory($config); $saver->save($data); } catch (Exception $e) { error_log('xhgui - ' . $e->getMessage()); } });
// since we're delaying that a bit by dealing with the xhprof stuff, we'll do it now to avoid making the user wait. ignore_user_abort(true); flush(); if (!defined('XHGUI_ROOT_DIR')) { require dirname(dirname(__FILE__)) . '/src/bootstrap.php'; } $uri = array_key_exists('REQUEST_URI', $_SERVER) ? $_SERVER['REQUEST_URI'] : null; if (empty($uri) && isset($_SERVER['argv'])) { $cmd = basename($_SERVER['argv'][0]); $uri = $cmd . ' ' . implode(' ', array_slice($_SERVER['argv'], 1)); } $time = array_key_exists('REQUEST_TIME', $_SERVER) ? $_SERVER['REQUEST_TIME'] : time(); $requestTimeFloat = explode('.', $_SERVER['REQUEST_TIME_FLOAT']); if (!isset($requestTimeFloat[1])) { $requestTimeFloat[1] = 0; } if (Xhgui_Config::read('save.handler') === 'file') { $requestTs = array('sec' => $time, 'usec' => 0); $requestTsMicro = array('sec' => $requestTimeFloat[0], 'usec' => $requestTimeFloat[1]); } else { $requestTs = new MongoDate($time); $requestTsMicro = new MongoDate($requestTimeFloat[0], $requestTimeFloat[1]); } $data['meta'] = array('url' => $uri, 'SERVER' => $_SERVER, 'get' => $_GET, 'env' => $_ENV, 'simple_url' => Xhgui_Util::simpleUrl($uri), 'request_ts' => $requestTs, 'request_ts_micro' => $requestTsMicro, 'request_date' => date('Y-m-d', $time)); try { $container = Xhgui_ServiceContainer::instance(); $container['saver']->save($data); } catch (Exception $e) { error_log('xhgui - ' . $e->getMessage()); } });
<?php /** * Boostrapping and common utility definition. */ define('XHGUI_ROOT_DIR', dirname(__DIR__)); if (file_exists(XHGUI_ROOT_DIR . '/vendor/autoload.php')) { require XHGUI_ROOT_DIR . '/vendor/autoload.php'; } elseif (file_exists(XHGUI_ROOT_DIR . '/../../autoload.php')) { require XHGUI_ROOT_DIR . '/../../autoload.php'; } Xhgui_Config::load(XHGUI_ROOT_DIR . '/config/config.default.php'); if (file_exists(XHGUI_ROOT_DIR . '/config/config.php')) { Xhgui_Config::load(XHGUI_ROOT_DIR . '/config/config.php'); }
/** * Clear out the data stored in the config class. * * @return void */ public static function clear() { self::$_config = array(); }
public function testClear() { Xhgui_Config::write('test', 'value'); $this->assertNull(Xhgui_Config::clear()); $this->assertNull(Xhgui_Config::read('test')); }