mirror of
https://github.com/getgrav/grav.git
synced 2025-11-01 19:05:58 +01:00
Optimization: Initialize debugbar only after the configuration has been loaded
Optimization: Combine some early Grav processors into a single one
This commit is contained in:
@@ -6,6 +6,8 @@
|
|||||||
* Removed `Gitter` and `Slack` [#2502](https://github.com/getgrav/grav/issues/2502)
|
* Removed `Gitter` and `Slack` [#2502](https://github.com/getgrav/grav/issues/2502)
|
||||||
* Optimizations for Plugin/Theme loading
|
* Optimizations for Plugin/Theme loading
|
||||||
* Generalized markdown classes so they can be used outside of `Page` scope with a custom `Excerpts` class instance
|
* Generalized markdown classes so they can be used outside of `Page` scope with a custom `Excerpts` class instance
|
||||||
|
* Optimization: Initialize debugbar only after the configuration has been loaded
|
||||||
|
* Optimization: Combine some early Grav processors into a single one
|
||||||
1. [](#bugfix)
|
1. [](#bugfix)
|
||||||
* Force question to install demo content in theme update [#2493](https://github.com/getgrav/grav/issues/2493)
|
* Force question to install demo content in theme update [#2493](https://github.com/getgrav/grav/issues/2493)
|
||||||
* Fixed GPM errors from blueprints not being logged [#2505](https://github.com/getgrav/grav/issues/2505)
|
* Fixed GPM errors from blueprints not being logged [#2505](https://github.com/getgrav/grav/issues/2505)
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
"dragonmantank/cron-expression": "^1.2",
|
"dragonmantank/cron-expression": "^1.2",
|
||||||
"phive/twig-extensions-deferred": "^1.0",
|
"phive/twig-extensions-deferred": "^1.0",
|
||||||
"willdurand/negotiation": "^2.3",
|
"willdurand/negotiation": "^2.3",
|
||||||
"itsgoingd/clockwork": "^3.1"
|
"itsgoingd/clockwork": "dev-master"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"codeception/codeception": "^2.4",
|
"codeception/codeception": "^2.4",
|
||||||
@@ -78,6 +78,10 @@
|
|||||||
{
|
{
|
||||||
"type": "vcs",
|
"type": "vcs",
|
||||||
"url": "https://github.com/trilbymedia/PHP-Markdown-Documentation-Generator"
|
"url": "https://github.com/trilbymedia/PHP-Markdown-Documentation-Generator"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "vcs",
|
||||||
|
"url": "https://github.com/itsgoingd/clockwork"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
|||||||
50
composer.lock
generated
50
composer.lock
generated
@@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "1c5e84ccbe601461f02188ff7336c82e",
|
"content-hash": "b33c701d98f2944f5396b14688b6063e",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "antoligy/dom-string-iterators",
|
"name": "antoligy/dom-string-iterators",
|
||||||
@@ -660,16 +660,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "itsgoingd/clockwork",
|
"name": "itsgoingd/clockwork",
|
||||||
"version": "v3.1.4",
|
"version": "dev-master",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/itsgoingd/clockwork.git",
|
"url": "https://github.com/itsgoingd/clockwork.git",
|
||||||
"reference": "529b6f9e2ce487b900213cf1d0694d0aebd5977f"
|
"reference": "68e64591085b0660a72bdf75aab21611b9a98ec9"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/529b6f9e2ce487b900213cf1d0694d0aebd5977f",
|
"url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/68e64591085b0660a72bdf75aab21611b9a98ec9",
|
||||||
"reference": "529b6f9e2ce487b900213cf1d0694d0aebd5977f",
|
"reference": "68e64591085b0660a72bdf75aab21611b9a98ec9",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -692,7 +692,6 @@
|
|||||||
"Clockwork\\": "Clockwork/"
|
"Clockwork\\": "Clockwork/"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
"license": [
|
||||||
"MIT"
|
"MIT"
|
||||||
],
|
],
|
||||||
@@ -706,15 +705,19 @@
|
|||||||
"description": "php dev tools integrated to your browser",
|
"description": "php dev tools integrated to your browser",
|
||||||
"homepage": "https://underground.works/clockwork",
|
"homepage": "https://underground.works/clockwork",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"Devtools",
|
|
||||||
"debugging",
|
"debugging",
|
||||||
|
"devtools",
|
||||||
"laravel",
|
"laravel",
|
||||||
"logging",
|
"logging",
|
||||||
"lumen",
|
"lumen",
|
||||||
"profiling",
|
"profiling",
|
||||||
"slim"
|
"slim"
|
||||||
],
|
],
|
||||||
"time": "2019-03-21T20:24:39+00:00"
|
"support": {
|
||||||
|
"source": "https://github.com/itsgoingd/clockwork/tree/master",
|
||||||
|
"issues": "https://github.com/itsgoingd/clockwork/issues"
|
||||||
|
},
|
||||||
|
"time": "2019-05-18T20:20:08+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "kodus/psr7-server",
|
"name": "kodus/psr7-server",
|
||||||
@@ -4269,16 +4272,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpstan/phpstan",
|
"name": "phpstan/phpstan",
|
||||||
"version": "0.11.6",
|
"version": "0.11.7",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/phpstan/phpstan.git",
|
"url": "https://github.com/phpstan/phpstan.git",
|
||||||
"reference": "7af8b9d02b3ab36444dbf4e1b9ca1c1bd5044d81"
|
"reference": "32d87d746c70785f78d239855782d27cde0eb6ee"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/7af8b9d02b3ab36444dbf4e1b9ca1c1bd5044d81",
|
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/32d87d746c70785f78d239855782d27cde0eb6ee",
|
||||||
"reference": "7af8b9d02b3ab36444dbf4e1b9ca1c1bd5044d81",
|
"reference": "32d87d746c70785f78d239855782d27cde0eb6ee",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -4287,6 +4290,7 @@
|
|||||||
"nette/bootstrap": "^2.4 || ^3.0",
|
"nette/bootstrap": "^2.4 || ^3.0",
|
||||||
"nette/di": "^2.4.7 || ^3.0",
|
"nette/di": "^2.4.7 || ^3.0",
|
||||||
"nette/robot-loader": "^3.0.1",
|
"nette/robot-loader": "^3.0.1",
|
||||||
|
"nette/schema": "^1.0",
|
||||||
"nette/utils": "^2.4.5 || ^3.0",
|
"nette/utils": "^2.4.5 || ^3.0",
|
||||||
"nikic/php-parser": "^4.0.2",
|
"nikic/php-parser": "^4.0.2",
|
||||||
"php": "~7.1",
|
"php": "~7.1",
|
||||||
@@ -4338,26 +4342,26 @@
|
|||||||
"MIT"
|
"MIT"
|
||||||
],
|
],
|
||||||
"description": "PHPStan - PHP Static Analysis Tool",
|
"description": "PHPStan - PHP Static Analysis Tool",
|
||||||
"time": "2019-05-08T16:33:56+00:00"
|
"time": "2019-05-19T17:36:42+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpstan/phpstan-deprecation-rules",
|
"name": "phpstan/phpstan-deprecation-rules",
|
||||||
"version": "0.11",
|
"version": "0.11.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/phpstan/phpstan-deprecation-rules.git",
|
"url": "https://github.com/phpstan/phpstan-deprecation-rules.git",
|
||||||
"reference": "449fee6223220b337760abca4444801ddcc8b38d"
|
"reference": "4991f7599646f97f7a2fc2b74ead018f2104ac8e"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/449fee6223220b337760abca4444801ddcc8b38d",
|
"url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/4991f7599646f97f7a2fc2b74ead018f2104ac8e",
|
||||||
"reference": "449fee6223220b337760abca4444801ddcc8b38d",
|
"reference": "4991f7599646f97f7a2fc2b74ead018f2104ac8e",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"nikic/php-parser": "^4.0",
|
"nikic/php-parser": "^4.0",
|
||||||
"php": "~7.1",
|
"php": "~7.1",
|
||||||
"phpstan/phpstan": "^0.11"
|
"phpstan/phpstan": "^0.11.4"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"consistence/coding-standard": "^3.0.1",
|
"consistence/coding-standard": "^3.0.1",
|
||||||
@@ -4368,10 +4372,15 @@
|
|||||||
"phpunit/phpunit": "^7.0",
|
"phpunit/phpunit": "^7.0",
|
||||||
"slevomat/coding-standard": "^4.5.2"
|
"slevomat/coding-standard": "^4.5.2"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "phpstan-extension",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "0.11-dev"
|
"dev-master": "0.11-dev"
|
||||||
|
},
|
||||||
|
"phpstan": {
|
||||||
|
"includes": [
|
||||||
|
"rules.neon"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@@ -4384,7 +4393,7 @@
|
|||||||
"MIT"
|
"MIT"
|
||||||
],
|
],
|
||||||
"description": "PHPStan rules for detecting usage of deprecated classes, methods, properties, constants and traits.",
|
"description": "PHPStan rules for detecting usage of deprecated classes, methods, properties, constants and traits.",
|
||||||
"time": "2018-12-05T18:04:16+00:00"
|
"time": "2019-05-19T19:55:34+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpunit/php-code-coverage",
|
"name": "phpunit/php-code-coverage",
|
||||||
@@ -5645,6 +5654,7 @@
|
|||||||
"aliases": [],
|
"aliases": [],
|
||||||
"minimum-stability": "stable",
|
"minimum-stability": "stable",
|
||||||
"stability-flags": {
|
"stability-flags": {
|
||||||
|
"itsgoingd/clockwork": 20,
|
||||||
"victorjonsson/markdowndocs": 20
|
"victorjonsson/markdowndocs": 20
|
||||||
},
|
},
|
||||||
"prefer-stable": false,
|
"prefer-stable": false,
|
||||||
|
|||||||
@@ -36,6 +36,9 @@ use Twig\TemplateWrapper;
|
|||||||
|
|
||||||
class Debugger
|
class Debugger
|
||||||
{
|
{
|
||||||
|
/** @var static */
|
||||||
|
protected static $instance;
|
||||||
|
|
||||||
/** @var Grav $grav */
|
/** @var Grav $grav */
|
||||||
protected $grav;
|
protected $grav;
|
||||||
|
|
||||||
@@ -73,30 +76,19 @@ class Debugger
|
|||||||
*/
|
*/
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
|
static::$instance = $this;
|
||||||
|
|
||||||
$this->currentTime = microtime(true);
|
$this->currentTime = microtime(true);
|
||||||
$this->requestTime = $_SERVER['REQUEST_TIME_FLOAT'] ?? GRAV_REQUEST_TIME;
|
|
||||||
|
|
||||||
if (!\defined('GRAV_REQUEST_TIME')) {
|
if (!\defined('GRAV_REQUEST_TIME')) {
|
||||||
\define('GRAV_REQUEST_TIME', $this->currentTime);
|
\define('GRAV_REQUEST_TIME', $this->currentTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->requestTime = $_SERVER['REQUEST_TIME_FLOAT'] ?? GRAV_REQUEST_TIME;
|
||||||
|
|
||||||
// Enable debugger until $this->init() gets called.
|
// Enable debugger until $this->init() gets called.
|
||||||
$this->enabled = true;
|
$this->enabled = true;
|
||||||
|
|
||||||
// Clockwork initialization.
|
|
||||||
$this->clockwork = new Clockwork();
|
|
||||||
|
|
||||||
// Debugbar initialization.
|
|
||||||
$this->debugbar = $debugbar = new DebugBar();
|
|
||||||
$debugbar->addCollector(new PhpInfoCollector());
|
|
||||||
$debugbar->addCollector(new MessagesCollector());
|
|
||||||
$debugbar->addCollector(new RequestDataCollector());
|
|
||||||
$debugbar->addCollector(new TimeDataCollector($this->requestTime));
|
|
||||||
|
|
||||||
$debugbar['time']->addMeasure('Server', $debugbar['time']->getRequestStartTime(), GRAV_REQUEST_TIME);
|
|
||||||
$debugbar['time']->addMeasure('Loading', GRAV_REQUEST_TIME, $this->currentTime);
|
|
||||||
$debugbar['time']->addMeasure('Debugger', $this->currentTime, microtime(true));
|
|
||||||
|
|
||||||
// Set deprecation collector.
|
// Set deprecation collector.
|
||||||
$this->setErrorHandler();
|
$this->setErrorHandler();
|
||||||
}
|
}
|
||||||
@@ -127,10 +119,15 @@ class Debugger
|
|||||||
if ($this->enabled) {
|
if ($this->enabled) {
|
||||||
$this->initialized = true;
|
$this->initialized = true;
|
||||||
|
|
||||||
|
// Clockwork initialization.
|
||||||
|
$this->clockwork = $clockwork = new Clockwork();
|
||||||
|
|
||||||
|
// Debugbar initialization.
|
||||||
|
$this->debugbar = $debugbar = new DebugBar();
|
||||||
|
|
||||||
$plugins_config = (array)$this->config->get('plugins');
|
$plugins_config = (array)$this->config->get('plugins');
|
||||||
ksort($plugins_config);
|
ksort($plugins_config);
|
||||||
|
|
||||||
$clockwork = $this->clockwork;
|
|
||||||
if ($clockwork) {
|
if ($clockwork) {
|
||||||
$log = $this->grav['log'];
|
$log = $this->grav['log'];
|
||||||
$clockwork->setStorage(new FileStorage(GRAV_ROOT . '/cache/clockwork'));
|
$clockwork->setStorage(new FileStorage(GRAV_ROOT . '/cache/clockwork'));
|
||||||
@@ -146,14 +143,22 @@ class Debugger
|
|||||||
if ($this->currentTime !== GRAV_REQUEST_TIME) {
|
if ($this->currentTime !== GRAV_REQUEST_TIME) {
|
||||||
$timeLine->addEvent('loading', 'Loading', GRAV_REQUEST_TIME, $this->currentTime);
|
$timeLine->addEvent('loading', 'Loading', GRAV_REQUEST_TIME, $this->currentTime);
|
||||||
}
|
}
|
||||||
|
$timeLine->addEvent('setup', 'Site Setup', $this->currentTime, microtime(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
$debugbar = $this->debugbar;
|
|
||||||
if ($debugbar) {
|
if ($debugbar) {
|
||||||
|
$debugbar->addCollector(new PhpInfoCollector());
|
||||||
|
$debugbar->addCollector(new MessagesCollector());
|
||||||
|
$debugbar->addCollector(new RequestDataCollector());
|
||||||
|
$debugbar->addCollector(new TimeDataCollector($this->requestTime));
|
||||||
$debugbar->addCollector(new MemoryCollector());
|
$debugbar->addCollector(new MemoryCollector());
|
||||||
$debugbar->addCollector(new ExceptionsCollector());
|
$debugbar->addCollector(new ExceptionsCollector());
|
||||||
$debugbar->addCollector(new ConfigCollector((array)$this->config->get('system'), 'Config'));
|
$debugbar->addCollector(new ConfigCollector((array)$this->config->get('system'), 'Config'));
|
||||||
$debugbar->addCollector(new ConfigCollector($plugins_config, 'Plugins'));
|
$debugbar->addCollector(new ConfigCollector($plugins_config, 'Plugins'));
|
||||||
|
|
||||||
|
$debugbar['time']->addMeasure('Server', $debugbar['time']->getRequestStartTime(), GRAV_REQUEST_TIME);
|
||||||
|
$debugbar['time']->addMeasure('Loading', GRAV_REQUEST_TIME, $this->currentTime);
|
||||||
|
$debugbar['time']->addMeasure('Site Setup', $this->currentTime, microtime(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->addMessage('Grav v' . GRAV_VERSION);
|
$this->addMessage('Grav v' . GRAV_VERSION);
|
||||||
@@ -349,16 +354,8 @@ class Debugger
|
|||||||
*/
|
*/
|
||||||
public function startTimer($name, $description = null)
|
public function startTimer($name, $description = null)
|
||||||
{
|
{
|
||||||
if (strpos($name, '_') === 0 || $this->enabled) {
|
if ($this->enabled || strpos($name, '_') === 0) {
|
||||||
if ($this->debugbar) {
|
$this->timers[$name] = [$description, microtime(true)];
|
||||||
$this->debugbar['time']->startMeasure($name, $description);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->clockwork) {
|
|
||||||
$this->clockwork->startEvent($name, $description ?? $name);
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->timers[] = $name;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
@@ -373,15 +370,23 @@ class Debugger
|
|||||||
*/
|
*/
|
||||||
public function stopTimer($name)
|
public function stopTimer($name)
|
||||||
{
|
{
|
||||||
if (\in_array($name, $this->timers, true) && (strpos($name, '_') === 0 || $this->enabled)) {
|
if (isset($this->timers[$name]) && (strpos($name, '_') === 0 || $this->enabled)) {
|
||||||
|
[$description, $startTime] = $this->timers[$name];
|
||||||
|
$endTime = microtime(true);
|
||||||
|
if ($endTime - $startTime < 0.001) {
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
if ($this->debugbar) {
|
if ($this->debugbar) {
|
||||||
$this->debugbar['time']->stopMeasure($name);
|
$this->debugbar['time']->addMeasure($description, $startTime, $endTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->clockwork) {
|
if ($this->clockwork) {
|
||||||
$this->clockwork->endEvent($name);
|
$timeLine = $this->clockwork->getTimeline();
|
||||||
|
$timeLine->addEvent($name, $description, $startTime, $endTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
unset($this->timers[$name]);
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -90,8 +90,6 @@ class Grav extends Container
|
|||||||
*/
|
*/
|
||||||
protected $middleware = [
|
protected $middleware = [
|
||||||
'configurationProcessor',
|
'configurationProcessor',
|
||||||
'loggerProcessor',
|
|
||||||
'errorsProcessor',
|
|
||||||
'debuggerProcessor',
|
'debuggerProcessor',
|
||||||
'initializeProcessor',
|
'initializeProcessor',
|
||||||
'pluginsProcessor',
|
'pluginsProcessor',
|
||||||
@@ -156,7 +154,6 @@ class Grav extends Container
|
|||||||
|
|
||||||
$this->initialized['setup'] = true;
|
$this->initialized['setup'] = true;
|
||||||
|
|
||||||
$this->measureTime('_setup', 'Site Setup', function () use ($environment) {
|
|
||||||
// Force environment if passed to the method.
|
// Force environment if passed to the method.
|
||||||
if ($environment) {
|
if ($environment) {
|
||||||
Setup::$environment = $environment;
|
Setup::$environment = $environment;
|
||||||
@@ -164,7 +161,6 @@ class Grav extends Container
|
|||||||
|
|
||||||
$this['setup'];
|
$this['setup'];
|
||||||
$this['streams'];
|
$this['streams'];
|
||||||
});
|
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
@@ -188,12 +184,6 @@ class Grav extends Container
|
|||||||
'configurationProcessor' => function () {
|
'configurationProcessor' => function () {
|
||||||
return new ConfigurationProcessor($this);
|
return new ConfigurationProcessor($this);
|
||||||
},
|
},
|
||||||
'loggerProcessor' => function () {
|
|
||||||
return new LoggerProcessor($this);
|
|
||||||
},
|
|
||||||
'errorsProcessor' => function () {
|
|
||||||
return new ErrorsProcessor($this);
|
|
||||||
},
|
|
||||||
'debuggerProcessor' => function () {
|
'debuggerProcessor' => function () {
|
||||||
return new DebuggerProcessor($this);
|
return new DebuggerProcessor($this);
|
||||||
},
|
},
|
||||||
@@ -478,9 +468,7 @@ class Grav extends Container
|
|||||||
return $container;
|
return $container;
|
||||||
};
|
};
|
||||||
|
|
||||||
$container->measureTime('_services', 'Services', function () use ($container) {
|
|
||||||
$container->registerServices();
|
$container->registerServices();
|
||||||
});
|
|
||||||
|
|
||||||
return $container;
|
return $container;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,9 @@
|
|||||||
|
|
||||||
namespace Grav\Common\Processors;
|
namespace Grav\Common\Processors;
|
||||||
|
|
||||||
|
use Grav\Common\Config\Config;
|
||||||
|
use Monolog\Formatter\LineFormatter;
|
||||||
|
use Monolog\Handler\SyslogHandler;
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
use Psr\Http\Server\RequestHandlerInterface;
|
use Psr\Http\Server\RequestHandlerInterface;
|
||||||
@@ -20,10 +23,37 @@ class ConfigurationProcessor extends ProcessorBase
|
|||||||
|
|
||||||
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
|
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
|
||||||
{
|
{
|
||||||
$this->startTimer();
|
$grav = $this->container;
|
||||||
$this->container['config']->init();
|
|
||||||
$this->container['plugins']->setup();
|
// Initialize Configuration
|
||||||
$this->stopTimer();
|
$this->startTimer('_config', 'Configuration');
|
||||||
|
/** @var Config $config */
|
||||||
|
$config = $grav['config'];
|
||||||
|
$config->init();
|
||||||
|
$grav['plugins']->setup();
|
||||||
|
$this->stopTimer('_config');
|
||||||
|
|
||||||
|
// Initialize Logging
|
||||||
|
$this->startTimer('_logger', 'Logger');
|
||||||
|
switch ($config->get('system.log.handler', 'file')) {
|
||||||
|
case 'syslog':
|
||||||
|
$log = $grav['log'];
|
||||||
|
$log->popHandler();
|
||||||
|
|
||||||
|
$facility = $config->get('system.log.syslog.facility', 'local6');
|
||||||
|
$logHandler = new SyslogHandler('grav', $facility);
|
||||||
|
$formatter = new LineFormatter("%channel%.%level_name%: %message% %extra%");
|
||||||
|
$logHandler->setFormatter($formatter);
|
||||||
|
|
||||||
|
$log->pushHandler($logHandler);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$this->stopTimer('_logger');
|
||||||
|
|
||||||
|
// Initialize Error Handlers
|
||||||
|
$this->startTimer('_errors', 'Error Handlers Reset');
|
||||||
|
$this->container['errors']->resetHandlers();
|
||||||
|
$this->stopTimer('_errors');
|
||||||
|
|
||||||
return $handler->handle($request);
|
return $handler->handle($request);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @package Grav\Common\Processors
|
|
||||||
*
|
|
||||||
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
|
|
||||||
* @license MIT License; see LICENSE file for details.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Grav\Common\Processors;
|
|
||||||
|
|
||||||
use Psr\Http\Message\ResponseInterface;
|
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
|
||||||
use Psr\Http\Server\RequestHandlerInterface;
|
|
||||||
|
|
||||||
class ErrorsProcessor extends ProcessorBase
|
|
||||||
{
|
|
||||||
public $id = '_errors';
|
|
||||||
public $title = 'Error Handlers Reset';
|
|
||||||
|
|
||||||
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
|
|
||||||
{
|
|
||||||
$this->startTimer();
|
|
||||||
$this->container['errors']->resetHandlers();
|
|
||||||
$this->stopTimer();
|
|
||||||
|
|
||||||
return $handler->handle($request);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @package Grav\Common\Processors
|
|
||||||
*
|
|
||||||
* @copyright Copyright (C) 2015 - 2019 Trilby Media, LLC. All rights reserved.
|
|
||||||
* @license MIT License; see LICENSE file for details.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Grav\Common\Processors;
|
|
||||||
|
|
||||||
use Grav\Common\Config\Config;
|
|
||||||
use Monolog\Formatter\LineFormatter;
|
|
||||||
use Monolog\Handler\SyslogHandler;
|
|
||||||
use Psr\Http\Message\ResponseInterface;
|
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
|
||||||
use Psr\Http\Server\RequestHandlerInterface;
|
|
||||||
|
|
||||||
class LoggerProcessor extends ProcessorBase
|
|
||||||
{
|
|
||||||
public $id = '_logger';
|
|
||||||
public $title = 'Logger';
|
|
||||||
|
|
||||||
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
|
|
||||||
{
|
|
||||||
$this->startTimer();
|
|
||||||
|
|
||||||
$grav = $this->container;
|
|
||||||
|
|
||||||
/** @var Config $config */
|
|
||||||
$config = $grav['config'];
|
|
||||||
|
|
||||||
switch ($config->get('system.log.handler', 'file')) {
|
|
||||||
case 'syslog':
|
|
||||||
$log = $grav['log'];
|
|
||||||
$log->popHandler();
|
|
||||||
|
|
||||||
$facility = $config->get('system.log.syslog.facility', 'local6');
|
|
||||||
$logHandler = new SyslogHandler('grav', $facility);
|
|
||||||
$formatter = new LineFormatter("%channel%.%level_name%: %message% %extra%");
|
|
||||||
$logHandler->setFormatter($formatter);
|
|
||||||
|
|
||||||
$log->pushHandler($logHandler);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
$this->stopTimer();
|
|
||||||
|
|
||||||
return $handler->handle($request);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user