<?php 
 
require_once __DIR__.'/../../vendor/autoload.php'; 
 
define ("CACHE_DIR",  __DIR__.'/cache'); 
// in order to check live changes 
exec('rm -rf '.CACHE_DIR.'/*'); 
 
$loader = new Twig_Loader_Filesystem(__DIR__); 
$twig = new Twig_Environment($loader, array( 
    'cache' => CACHE_DIR, 
)); 
 
// TWIG FUNCTIONS TO HANDLE STATS GRAPHICS SIMPLY  
$twig->addFunction( 
    new Twig_SimpleFunction('statsGraph', function ($graphName, $title, $event, $range, $width, $height) { 
        $graph = null; 
        switch (strtolower(trim($graphName))){ 
            case 'scatter': 
                $graph = new \JLaso\SimpleStats\Graph\Scatter(); 
                break; 
            case 'bar': 
                $graph = new \JLaso\SimpleStats\Graph\Bar(); 
                break; 
            default: 
                return "Graph {$graph} not recognized in statsGraph twig function"; 
        } 
        $file = uniqid($graphName.'-').'.svg'; 
 
        $graph->draw($title, $event, $range, $width, $height, CACHE_DIR.'/'.$file); 
 
        return '<img src="cache/'.$file.'" alt="'.$title.'">'; 
 
    }, array('pre_escape' => 'html', 'is_safe' => array('html'))) 
); 
 
$twig->addFunction( 
    new Twig_SimpleFunction('statsCount', function ($event, $data) { 
        return \JLaso\SimpleStats\Stats::getInstance()->getCountByData($event, $data); 
    }) 
); 
 
$twig->addFunction( 
    new Twig_SimpleFunction('userIP', function () { 
        return \JLaso\SimpleStats\Stats::getInstance()->getUserIP(); 
    }) 
); 
 
$twig->addFunction( 
    new Twig_SimpleFunction('home', function () { 
      return basename(__FILE__); 
    }) 
); 
 
 
echo $twig->render('demo.html.twig');
 
 |