open qoob framework

RESTful php api framework for creating dynamic web applications

open qoob framework

qoob/utils/stats.php


<?php
/**
 * stats
 * statistical analysis class
 *
 * @author 		xero harrison / http://xero.nu
 * @copyright 	creative commons attribution-shareAlike 3.0 Unported
 * @license 	http://creativecommons.org/licenses/by-sa/3.0/ 
 * @version 	0.23
 * @package		qoob
 * @subpackage	utils 
 */
namespace qoob\utils;
class stats {
	/**
	 * mine
	 * load XBD and geoip utils and save data
	 */
	function mine() {
		$q = \qoob::open();
		$q->benchmark->mark('statsStart');
		//get browser info
		$q->load('qoob\utils\xbd');
		$info = $q->xbd->browser();
		//get geo location from ipaddress
		$q->load("qoob\utils\location\geoip");
		$info["location"] = $q->geoip->getCountry($info["ipaddress"]);
		//get request info
		$info['time'] = @time();
		$info['domain'] = $this->getDomain(\library::exists('QOOB.domain')?\library::get('QOOB.domain'):dirname($_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"]));
		$info['uri'] = \library::exists('REQUEST.uri')?\library::get('REQUEST.uri'):rtrim(str_replace(dirname($_SERVER["HTTP_HOST"].$_SERVER["SCRIPT_NAME"]), '', 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']), '/');
		$info['url_checksum'] = crc32($info['domain'].$info['uri']);
		$info['verb'] = \library::exists('REQUEST.verb')?\library::get('REQUEST.verb'):'unknown';
		$info['ajax'] = \library::exists('REQUEST.ajax')?(\library::get('REQUEST.ajax')=='AJAX'?1:0):0;
    	$info['status'] = \library::exists('STATUS.code')?\library::get('STATUS.code'):500;
		$info['referer'] = filter_var(isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'', FILTER_VALIDATE_URL)?filter_var($_SERVER['HTTP_REFERER'], FILTER_SANITIZE_URL):'';
		$info['ref_domain'] = $this->getDomain($info['referer']);
		$info['ref_checksum'] = crc32($info['ref_domain']);
		//save info
		$q->load('app\model\statsModel');
		$q->statsModel->save($info);
		$q->benchmark->mark('statsEnd');
	}
	function getDomain($url) {
		return preg_replace('/(^([^:]+):\/\/(www\.)?|(:\d+)?\/.*$)/', '', $url);
	}
}

?>

Download

raw zip tar