FSNews Engine NViews collector

Библиотека работает с SQL-таблицей следующего (минимального) вида:

CREATE TABLE example (
    item_id int DEFAULT NULL,
    event_date date DEFAULT NULL,
    event_count int DEFAULT NULL,
    UNIQUE KEY uniq_id_eventdate (item_id, event_date)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='visit log';

Впрочем, уникальный ключ может быть сложнее и покрывать какие-то дополнительные поля (например, is_external). Это минимальная необходимая структура:

  • id материала
  • дата события
  • количество событий на дату и материал
use AJUR\FSNews\NViews;

require_once __DIR__ . '/vendor/autoload.php';

// bootstrapping

// connect to database
$pdo = new \Arris\Database\DBWrapper([
    'driver'    =>  'mysql',
    'hostname'  =>  'localhost',
    'username'  =>  'wombat',
    'password'  =>  'wombatsql',
    'database'  =>  '47news',
    'charset'   =>  'utf8',
    'charset_collate'   =>  'utf8_general_ci',
    'slow_query_threshold'  => 1
]);

NViews::init($pdo /* default values */); // connection may be null, then required at addStream()
NViews::addStream('unique', $pdo, 'stat_nviews_full'); // connection may be null, default from init() will be used


// somewhere below in the code

NViews::stream('unique')->addEvent(239418);

// anywhere 

$data = NViews::stream('unique')->getEvents(239418);
var_dump($data);