mirror of
https://github.com/getgrav/grav.git
synced 2026-03-03 11:01:30 +01:00
initial stuff
This commit is contained in:
@@ -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);
|
||||
|
||||
58
system/src/Grav/Common/Twig/TwigClockworkDataSource.php
Normal file
58
system/src/Grav/Common/Twig/TwigClockworkDataSource.php
Normal 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) ]
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user