Example #1
0
 public function __construct()
 {
     $this['config'] = Xhgui_Config::all();
     $this->_slimApp();
     $this->_services();
     $this->_controllers();
 }
Example #2
0
 /**
  * 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);
 }
Example #3
0
 /**
  * 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;
     }
 }
Example #4
0
    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());
    }
});
Example #5
0
    // 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());
    }
});
Example #6
0
<?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');
}
Example #7
0
 /**
  * Clear out the data stored in the config class.
  *
  * @return void
  */
 public static function clear()
 {
     self::$_config = array();
 }
Example #8
0
 public function testClear()
 {
     Xhgui_Config::write('test', 'value');
     $this->assertNull(Xhgui_Config::clear());
     $this->assertNull(Xhgui_Config::read('test'));
 }