示例#1
0
 public function testConstructor()
 {
     $this->assertInstanceOf('Webiny\\AnalyticsDb\\Query\\Dimensions', $this->instance);
     $pipeline = $this->instance->getPipeline();
     // test $match
     $ts = DateHelper::today();
     $defaultMatch = ['entity' => 'browser', 'ts' => ['$gte' => $ts[0], '$lte' => $ts[1]]];
     $this->assertSame($defaultMatch, $pipeline[0]['$match']);
     // test $project
     $defaultProject = ['ts' => 1, 'entity' => 1, 'month' => 1, 'year' => 1, 'name' => 1, 'value' => 1, 'total' => 1, 'count.100' => 1];
     $this->assertSame($defaultProject, $pipeline[1]['$project']);
 }
示例#2
0
 public function testRangeYear()
 {
     $result = DateHelper::rangeYear();
     $this->assertTrue(is_array($result));
     $this->assertSame('01-01', date('m-d', $result[0]));
     $this->assertSame('12-31', date('m-d', $result[1]));
     $this->assertSame(date('Y'), date('Y', $result[1]));
     $this->assertLessThanOrEqual(365, ($result[1] - $result[0]) / 86400);
     $this->assertGreaterThanOrEqual(364, ($result[1] - $result[0]) / 86400);
     $result = DateHelper::rangeYear(2014);
     $this->assertSame('01-01', date('m-d', $result[0]));
     $this->assertSame('12-31', date('m-d', $result[1]));
     $this->assertSame('2014', date('Y', $result[1]));
     $this->assertLessThanOrEqual(365, ($result[1] - $result[0]) / 86400);
     $this->assertGreaterThanOrEqual(364, ($result[1] - $result[0]) / 86400);
 }
示例#3
0
 public function setUp()
 {
     \Webiny\Component\Mongo\Mongo::setConfig(new ConfigObject(['Driver' => 'Webiny\\AnalyticsDb\\Test\\MongoDriverMock']));
     $this->instance = new Query(new Mongo('localhost', 'testDb'), 'browser', 100, DateHelper::today());
 }
示例#4
0
 public function testQuery()
 {
     $query = $this->instance->query('browser', 10, DateHelper::today());
     $this->assertInstanceOf('Webiny\\AnalyticsDb\\Query', $query);
 }
示例#5
0
<?php

use Webiny\WebsiteAnalytics\StatHandlers\Browser;
use Webiny\WebsiteAnalytics\StatHandlers\Country;
require_once 'vendor/autoload.php';
$_SERVER['SERVER_NAME'] = 'www.webiny.com';
$geoProvider = new \Webiny\GeoIp\Provider\MaxMindGeoLite2\MaxMindGeoLite2(__DIR__ . '/test-config.yaml');
$geoIp = new \Webiny\GeoIp\GeoIp($geoProvider);
$mongo = new \Webiny\Component\Mongo\Mongo('127.0.0.1:27017', 'LoginFoo');
$a = new \Webiny\AnalyticsDb\AnalyticsDb($mongo);
$wa = new \Webiny\WebsiteAnalytics\WebsiteAnalytics($a, $geoIp);
# queries
$stats = $wa->query(\Webiny\AnalyticsDb\DateHelper::rangeLast90Days());
// visitors (unique)
$result = $stats->visitorsSum();
$result = $stats->visitorsByDay();
$result = $stats->visitorsByMonth();
// dimensions (based on visitors)
$result = $stats->visitorsDimensionSum(Browser::NAME, 'safari');
$result = $stats->visitorsDimensionByDay(Country::NAME, 'HR');
// page views (not unique)
$result = $stats->pageViewsSum();
$result = $stats->pageViewsByDay();
$result = $stats->pageViewsByMonth();
// url - get top 10 pages
$result = $stats->urlSum();
// url - get total number of views for the given page
$result = $stats->urlSum('/page-110/');
$result = $stats->urlByDay('/page-860/');
$result = $stats->urlByMonth('/page-860/');
$result = $stats->urlDimensionSum('/page-110/', Browser::NAME);