initial stuff

This commit is contained in:
Andy Miller
2019-05-27 13:45:00 +03:00
parent 0fd2627cea
commit 5cc48c4e01
2 changed files with 63 additions and 0 deletions

View File

@@ -13,6 +13,7 @@ use Clockwork\Clockwork;
use Clockwork\DataSource\MonologDataSource;
use Clockwork\DataSource\PhpDataSource;
use Clockwork\DataSource\XdebugDataSource;
use Clockwork\Request\Timeline;
use Clockwork\Request\UserData;
use Clockwork\Storage\FileStorage;
use DebugBar\DataCollector\ConfigCollector;
@@ -28,6 +29,7 @@ use DebugBar\JavascriptRenderer;
use DebugBar\StandardDebugBar;
use Grav\Common\Config\Config;
use Grav\Common\Processors\ProcessorInterface;
use Grav\Common\Twig\TwigClockworkDataSource;
use Monolog\Logger;
use RocketTheme\Toolbox\Event\Event;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
@@ -138,6 +140,9 @@ class Debugger
if ($log instanceof Logger) {
$clockwork->addDataSource(new MonologDataSource($log));
}
$clockwork->addDataSource(new TwigClockworkDataSource($this->grav['twig']));
$timeLine = $clockwork->getTimeline();
if ($this->requestTime !== GRAV_REQUEST_TIME) {
$timeLine->addEvent('server', 'Server', $this->requestTime, GRAV_REQUEST_TIME);

View File

@@ -0,0 +1,58 @@
<?php
/**
* @package Grav\Common\Twig
*
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
* @license MIT License; see LICENSE file for details.
*/
namespace Grav\Common\Twig;
use Clockwork\DataSource\DataSource;
use Clockwork\Helpers\Serializer;
use Clockwork\Request\Request;
use Clockwork\Request\Timeline;
class TwigClockworkDataSource extends DataSource
{
/**
* Views data structure
*/
protected $views;
/**
* Create a new data source, takes Twig instance as an argument
*/
public function __construct($twig)
{
$this->views = new Timeline();
}
/**
* Adds twig data to the request
*/
public function resolve(Request $request)
{
$this->processTwigTimings();
$request->viewsData = $this->views->finalize();
return $request;
}
protected function processTwigTimings()
{
$time = 10;
$data = ['foo', 'bar'];
$this->views->addEvent(
'view Test',
'Rendering a view',
$time,
$time + 10,
[ 'name' => 'Test Name', 'data' => (new Serializer)->normalize($data) ]
);
}
}