Deprecated: Return type of Pimple\Container::offsetExists($id) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/grav.test/html/vendor/pimple/pimple/src/Pimple/Container.php on line 133

Deprecated: Return type of Pimple\Container::offsetGet($id) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/grav.test/html/vendor/pimple/pimple/src/Pimple/Container.php on line 98

Deprecated: Return type of Pimple\Container::offsetSet($id, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/grav.test/html/vendor/pimple/pimple/src/Pimple/Container.php on line 79

Deprecated: Return type of Pimple\Container::offsetUnset($id) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/grav.test/html/vendor/pimple/pimple/src/Pimple/Container.php on line 143

Deprecated: Return type of DebugBar\DebugBar::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/grav.test/html/vendor/maximebf/debugbar/src/DebugBar/DebugBar.php on line 484

Deprecated: Return type of DebugBar\DebugBar::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/grav.test/html/vendor/maximebf/debugbar/src/DebugBar/DebugBar.php on line 479

Deprecated: Return type of DebugBar\DebugBar::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/grav.test/html/vendor/maximebf/debugbar/src/DebugBar/DebugBar.php on line 474

Deprecated: Return type of DebugBar\DebugBar::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /www/grav.test/html/vendor/maximebf/debugbar/src/DebugBar/DebugBar.php on line 489

Deprecated: Creation of dynamic property DebugBar\DataFormatter\DataFormatter::$cloner is deprecated in /www/grav.test/html/vendor/maximebf/debugbar/src/DebugBar/DataFormatter/DataFormatter.php on line 23

Deprecated: Creation of dynamic property DebugBar\DataFormatter\DataFormatter::$dumper is deprecated in /www/grav.test/html/vendor/maximebf/debugbar/src/DebugBar/DataFormatter/DataFormatter.php on line 24
UnexpectedValueException: The stream or file "/www/grav.test/html/logs/grav.log" could not be opened: Failed to open stream: Permission denied in /www/grav.test/html/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:108 Stack trace: #0 /www/grav.test/html/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(39): Monolog\Handler\StreamHandler->write(Array) #1 /www/grav.test/html/vendor/monolog/monolog/src/Monolog/Logger.php(344): Monolog\Handler\AbstractProcessingHandler->handle(Array) #2 /www/grav.test/html/vendor/monolog/monolog/src/Monolog/Logger.php(470): Monolog\Logger->addRecord(500, 'Failed to start...', Array) #3 /www/grav.test/html/system/src/Grav/Common/Errors/Errors.php(61): Monolog\Logger->addCritical('Failed to start...') #4 /www/grav.test/html/vendor/filp/whoops/src/Whoops/Handler/CallbackHandler.php(50): Grav\Common\Errors\Errors->Grav\Common\Errors\{closure}(Object(Grav\Framework\Session\Exceptions\SessionException), Object(Whoops\Exception\Inspector), Object(Whoops\Run)) #5 /www/grav.test/html/vendor/filp/whoops/src/Whoops/Run.php(296): Whoops\Handler\CallbackHandler->handle(Object(Grav\Framework\Session\Exceptions\SessionException)) #6 [internal function]: Whoops\Run->handleException(Object(Grav\Framework\Session\Exceptions\SessionException)) #7 {main} Crikey! There was an error...
Grav \ Framework \ Session \ Exceptions \ SessionException (500)
Failed to start session: session_start(): Session cannot be started after headers have already been sent Grav\Framework\Session\Exceptions\SessionException thrown with message "Failed to start session: session_start(): Session cannot be started after headers have already been sent" Stacktrace: #18 Grav\Framework\Session\Exceptions\SessionException in /www/grav.test/html/system/src/Grav/Framework/Session/Session.php:199 #17 Grav\Framework\Session\Session:start in /www/grav.test/html/system/src/Grav/Common/Session.php:38 #16 Grav\Common\Session:init in /www/grav.test/html/system/src/Grav/Common/Processors/InitializeProcessor.php:71 #15 Grav\Common\Processors\InitializeProcessor:process in /www/grav.test/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:45 #14 Grav\Framework\RequestHandler\RequestHandler:handle in /www/grav.test/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:57 #13 Grav\Framework\RequestHandler\RequestHandler:handle in /www/grav.test/html/system/src/Grav/Common/Processors/DebuggerProcessor.php:27 #12 Grav\Common\Processors\DebuggerProcessor:process in /www/grav.test/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:45 #11 Grav\Framework\RequestHandler\RequestHandler:handle in /www/grav.test/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:57 #10 Grav\Framework\RequestHandler\RequestHandler:handle in /www/grav.test/html/system/src/Grav/Common/Processors/ErrorsProcessor.php:27 #9 Grav\Common\Processors\ErrorsProcessor:process in /www/grav.test/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:45 #8 Grav\Framework\RequestHandler\RequestHandler:handle in /www/grav.test/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:57 #7 Grav\Framework\RequestHandler\RequestHandler:handle in /www/grav.test/html/system/src/Grav/Common/Processors/LoggerProcessor.php:48 #6 Grav\Common\Processors\LoggerProcessor:process in /www/grav.test/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:45 #5 Grav\Framework\RequestHandler\RequestHandler:handle in /www/grav.test/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:57 #4 Grav\Framework\RequestHandler\RequestHandler:handle in /www/grav.test/html/system/src/Grav/Common/Processors/ConfigurationProcessor.php:28 #3 Grav\Common\Processors\ConfigurationProcessor:process in /www/grav.test/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:45 #2 Grav\Framework\RequestHandler\RequestHandler:handle in /www/grav.test/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:57 #1 Grav\Framework\RequestHandler\RequestHandler:handle in /www/grav.test/html/system/src/Grav/Common/Grav.php:272 #0 Grav\Common\Grav:process in /www/grav.test/html/index.php:54
Stack frames (19)
18
Grav\Framework\Session\Exceptions\SessionException
/system/src/Grav/Framework/Session/Session.php199
17
Grav\Framework\Session\Session start
/system/src/Grav/Common/Session.php38
16
Grav\Common\Session init
/system/src/Grav/Common/Processors/InitializeProcessor.php71
15
Grav\Common\Processors\InitializeProcessor process
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php45
14
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php57
13
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Common/Processors/DebuggerProcessor.php27
12
Grav\Common\Processors\DebuggerProcessor process
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php45
11
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php57
10
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Common/Processors/ErrorsProcessor.php27
9
Grav\Common\Processors\ErrorsProcessor process
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php45
8
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php57
7
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Common/Processors/LoggerProcessor.php48
6
Grav\Common\Processors\LoggerProcessor process
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php45
5
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php57
4
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Common/Processors/ConfigurationProcessor.php28
3
Grav\Common\Processors\ConfigurationProcessor process
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php45
2
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php57
1
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Common/Grav.php272
0
Grav\Common\Grav process
/index.php54
/www/grav.test/html/system/src/Grav/Framework/Session/Session.php
        $sessionExists = isset($_COOKIE[$sessionName]);
 
        // Protection against invalid session cookie names throwing exception: http://php.net/manual/en/function.session-id.php#116836
        if ($sessionExists && !preg_match('/^[-,a-zA-Z0-9]{1,128}$/', $_COOKIE[$sessionName])) {
            unset($_COOKIE[$sessionName]);
            $sessionExists = false;
        }
 
        $options = $this->options;
        if ($readonly) {
            $options['read_and_close'] = '1';
        }
 
        $success = @session_start($options);
        $user = $success ? $this->__get('user') : null;
        if (!$success) {
            $last = error_get_last();
            $error = $last ? $last['message'] : 'Unknown error';
 
            throw new SessionException('Failed to start session: ' . $error, 500);
        }
 
        $this->started = true;
 
        if ($user && (!$user instanceof UserInterface || !$user->isValid())) {
            $this->invalidate();
 
            throw new SessionException('Invalid User object, session destroyed.', 500);
        }
 
        // Extend the lifetime of the session.
        if ($sessionExists) {
            $params = session_get_cookie_params();
 
            setcookie(
                $sessionName,
                session_id(),
                time() + $params['lifetime'],
                $params['path'],
                $params['domain'],
Arguments
  1. "Failed to start session: session_start(): Session cannot be started after headers have already been sent"
    
/www/grav.test/html/system/src/Grav/Common/Session.php
    /**
     * @return \Grav\Framework\Session\Session
     * @deprecated 1.5 Use ->getInstance() method instead.
     */
    public static function instance()
    {
        user_error(__CLASS__ . '::' . __FUNCTION__ . '() is deprecated since Grav 1.5, use ->getInstance() method instead', E_USER_DEPRECATED);
 
        return static::getInstance();
    }
 
    /**
     * Initialize session.
     *
     * Code in this function has been moved into SessionServiceProvider class.
     */
    public function init()
    {
        if ($this->autoStart && !$this->isStarted()) {
            $this->start();
 
            $this->autoStart = false;
        }
    }
 
    /**
     * @param bool $auto
     * @return $this
     */
    public function setAutoStart($auto)
    {
        $this->autoStart = (bool)$auto;
 
        return $this;
    }
 
    /**
     * Returns attributes.
     *
     * @return array Attributes
/www/grav.test/html/system/src/Grav/Common/Processors/InitializeProcessor.php
        if ($config->get('system.cache.gzip') && !@ob_start('ob_gzhandler')) {
            // Enable zip/deflate with a fallback in case of if browser does not support compressing.
            ob_start();
        }
 
        // Initialize the timezone.
        $timezone = $config->get('system.timezone');
        if ($timezone) {
            date_default_timezone_set($timezone);
        }
 
        // FIXME: Initialize session should happen later after plugins have been loaded. This is a workaround to fix session issues in AWS.
        if (isset($this->container['session']) && $config->get('system.session.initialize', true)) {
            // TODO: remove in 2.0.
            $this->container['accounts'];
 
            try {
                $this->container['session']->init();
            } catch (SessionException $e) {
                $this->container['session']->init();
                $message = 'Session corruption detected, restarting session...';
                $this->addMessage($message);
                $this->container['messages']->add($message, 'error');
            }
        }
 
        /** @var Uri $uri */
        $uri = $this->container['uri'];
        $uri->init();
 
        // Redirect pages with trailing slash if configured to do so.
        $path = $uri->path() ?: '/';
        if ($path !== '/'
            && $config->get('system.pages.redirect_trailing_slash', false)
            && Utils::endsWith($path, '/')) {
 
            $redirect = (string) $uri::getCurrentRoute()->toString();
            $this->container->redirect($redirect);
        }
 
/www/grav.test/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
    private $handler;
 
    /** @var ContainerInterface|null */
    private $container;
 
    /**
     * {@inheritdoc}
     * @throws InvalidArgumentException
     */
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = array_shift($this->middleware);
 
        // Use default callable if there is no middleware.
        if ($middleware === null) {
            return \call_user_func($this->handler, $request);
        }
 
        if ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, clone $this);
        }
 
        if (null === $this->container || !$this->container->has($middleware)) {
            throw new InvalidArgumentException(
                sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
                $middleware
            );
        }
 
        array_unshift($this->middleware, $this->container->get($middleware));
 
        return $this->handle($request);
    }
}
Arguments
  1. ServerRequest {#69}
    
  2. RequestHandler {#121}
    
/www/grav.test/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
 
        // Use default callable if there is no middleware.
        if ($middleware === null) {
            return \call_user_func($this->handler, $request);
        }
 
        if ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, clone $this);
        }
 
        if (null === $this->container || !$this->container->has($middleware)) {
            throw new InvalidArgumentException(
                sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
                $middleware
            );
        }
 
        array_unshift($this->middleware, $this->container->get($middleware));
 
        return $this->handle($request);
    }
}
Arguments
  1. ServerRequest {#69}
    
/www/grav.test/html/system/src/Grav/Common/Processors/DebuggerProcessor.php
 */
 
namespace Grav\Common\Processors;
 
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
 
class DebuggerProcessor extends ProcessorBase
{
    public $id = '_debugger';
    public $title = 'Init Debugger';
 
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
    {
        $this->startTimer();
        $this->container['debugger']->init();
        $this->stopTimer();
 
        return $handler->handle($request);
    }
}
 
Arguments
  1. ServerRequest {#69}
    
/www/grav.test/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
    private $handler;
 
    /** @var ContainerInterface|null */
    private $container;
 
    /**
     * {@inheritdoc}
     * @throws InvalidArgumentException
     */
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = array_shift($this->middleware);
 
        // Use default callable if there is no middleware.
        if ($middleware === null) {
            return \call_user_func($this->handler, $request);
        }
 
        if ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, clone $this);
        }
 
        if (null === $this->container || !$this->container->has($middleware)) {
            throw new InvalidArgumentException(
                sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
                $middleware
            );
        }
 
        array_unshift($this->middleware, $this->container->get($middleware));
 
        return $this->handle($request);
    }
}
Arguments
  1. ServerRequest {#69}
    
  2. RequestHandler {#119}
    
/www/grav.test/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
 
        // Use default callable if there is no middleware.
        if ($middleware === null) {
            return \call_user_func($this->handler, $request);
        }
 
        if ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, clone $this);
        }
 
        if (null === $this->container || !$this->container->has($middleware)) {
            throw new InvalidArgumentException(
                sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
                $middleware
            );
        }
 
        array_unshift($this->middleware, $this->container->get($middleware));
 
        return $this->handle($request);
    }
}
Arguments
  1. ServerRequest {#69}
    
/www/grav.test/html/system/src/Grav/Common/Processors/ErrorsProcessor.php
 */
 
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);
    }
}
 
Arguments
  1. ServerRequest {#69}
    
/www/grav.test/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
    private $handler;
 
    /** @var ContainerInterface|null */
    private $container;
 
    /**
     * {@inheritdoc}
     * @throws InvalidArgumentException
     */
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = array_shift($this->middleware);
 
        // Use default callable if there is no middleware.
        if ($middleware === null) {
            return \call_user_func($this->handler, $request);
        }
 
        if ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, clone $this);
        }
 
        if (null === $this->container || !$this->container->has($middleware)) {
            throw new InvalidArgumentException(
                sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
                $middleware
            );
        }
 
        array_unshift($this->middleware, $this->container->get($middleware));
 
        return $this->handle($request);
    }
}
Arguments
  1. ServerRequest {#69}
    
  2. RequestHandler {#107}
    
/www/grav.test/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
 
        // Use default callable if there is no middleware.
        if ($middleware === null) {
            return \call_user_func($this->handler, $request);
        }
 
        if ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, clone $this);
        }
 
        if (null === $this->container || !$this->container->has($middleware)) {
            throw new InvalidArgumentException(
                sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
                $middleware
            );
        }
 
        array_unshift($this->middleware, $this->container->get($middleware));
 
        return $this->handle($request);
    }
}
Arguments
  1. ServerRequest {#69}
    
/www/grav.test/html/system/src/Grav/Common/Processors/LoggerProcessor.php
 
        /** @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);
    }
}
 
Arguments
  1. ServerRequest {#69}
    
/www/grav.test/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
    private $handler;
 
    /** @var ContainerInterface|null */
    private $container;
 
    /**
     * {@inheritdoc}
     * @throws InvalidArgumentException
     */
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = array_shift($this->middleware);
 
        // Use default callable if there is no middleware.
        if ($middleware === null) {
            return \call_user_func($this->handler, $request);
        }
 
        if ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, clone $this);
        }
 
        if (null === $this->container || !$this->container->has($middleware)) {
            throw new InvalidArgumentException(
                sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
                $middleware
            );
        }
 
        array_unshift($this->middleware, $this->container->get($middleware));
 
        return $this->handle($request);
    }
}
Arguments
  1. ServerRequest {#69}
    
  2. RequestHandler {#100}
    
/www/grav.test/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
 
        // Use default callable if there is no middleware.
        if ($middleware === null) {
            return \call_user_func($this->handler, $request);
        }
 
        if ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, clone $this);
        }
 
        if (null === $this->container || !$this->container->has($middleware)) {
            throw new InvalidArgumentException(
                sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
                $middleware
            );
        }
 
        array_unshift($this->middleware, $this->container->get($middleware));
 
        return $this->handle($request);
    }
}
Arguments
  1. ServerRequest {#69}
    
/www/grav.test/html/system/src/Grav/Common/Processors/ConfigurationProcessor.php
 
namespace Grav\Common\Processors;
 
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
 
class ConfigurationProcessor extends ProcessorBase
{
    public $id = '_config';
    public $title = 'Configuration';
 
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
    {
        $this->startTimer();
        $this->container['config']->init();
        $this->container['plugins']->setup();
        $this->stopTimer();
 
        return $handler->handle($request);
    }
}
 
Arguments
  1. ServerRequest {#69}
    
/www/grav.test/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
    private $handler;
 
    /** @var ContainerInterface|null */
    private $container;
 
    /**
     * {@inheritdoc}
     * @throws InvalidArgumentException
     */
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = array_shift($this->middleware);
 
        // Use default callable if there is no middleware.
        if ($middleware === null) {
            return \call_user_func($this->handler, $request);
        }
 
        if ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, clone $this);
        }
 
        if (null === $this->container || !$this->container->has($middleware)) {
            throw new InvalidArgumentException(
                sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
                $middleware
            );
        }
 
        array_unshift($this->middleware, $this->container->get($middleware));
 
        return $this->handle($request);
    }
}
Arguments
  1. ServerRequest {#69}
    
  2. RequestHandler {#93}
    
/www/grav.test/html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
 
        // Use default callable if there is no middleware.
        if ($middleware === null) {
            return \call_user_func($this->handler, $request);
        }
 
        if ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, clone $this);
        }
 
        if (null === $this->container || !$this->container->has($middleware)) {
            throw new InvalidArgumentException(
                sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
                $middleware
            );
        }
 
        array_unshift($this->middleware, $this->container->get($middleware));
 
        return $this->handle($request);
    }
}
Arguments
  1. ServerRequest {#69}
    
/www/grav.test/html/system/src/Grav/Common/Grav.php
                },
                'debuggerAssetsProcessor' => function () {
                    return new DebuggerAssetsProcessor($this);
                },
                'renderProcessor' => function () {
                    return new RenderProcessor($this);
                },
            ]
        );
 
        $default = function (ServerRequestInterface $request) {
            return new Response(404);
        };
 
        /** @var Debugger $debugger */
        $debugger = $this['debugger'];
 
        $collection = new RequestHandler($this->middleware, $default, $container);
 
        $response = $collection->handle($this['request']);
        $body = $response->getBody();
 
        // Handle ETag and If-None-Match headers.
        if ($response->getHeaderLine('ETag') === '1') {
            $etag = md5($body);
            $response = $response->withHeader('ETag', $etag);
 
            if ($this['request']->getHeaderLine('If-None-Match') === $etag) {
                $response = $response->withStatus(304);
                $body = '';
            }
        }
 
        $this->header($response);
        echo $body;
 
        $debugger->render();
 
        register_shutdown_function([$this, 'shutdown']);
    }
Arguments
  1. ServerRequest {#69}
    
/www/grav.test/html/index.php
if (!is_file($autoload)) {
    die('Please run: <i>bin/grav install</i>');
}
 
// Register the auto-loader.
$loader = require $autoload;
 
use Grav\Common\Grav;
use RocketTheme\Toolbox\Event\Event;
 
// Get the Grav instance
$grav = Grav::instance(
    array(
        'loader' => $loader
    )
);
 
// Process the page
try {
    $grav->process();
} catch (\Error $e) {
    $grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
    throw $e;
} catch (\Exception $e) {
    $grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
    throw $e;
}
 

Environment & details:

empty
empty
empty
empty
empty
Key Value
HOSTNAME
"0e6b995d93f6"
PHP_INI_DIR
"/usr/local/etc/php"
HOME
"/var/www"
PHP_LDFLAGS
"-Wl,-O1 -pie"
PHP_CFLAGS
"-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
PHP_VERSION
"8.2.14"
GPG_KEYS
"39B641343D8C104B2B146DC3F9C39DC0B9698544 E60913E4DF209907D8E30D96659A97C9CF2A795A 1198C0117593497A5EC5C199286AF1F9897469DC"
PHP_CPPFLAGS
"-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
PHP_ASC_URL
"https://www.php.net/distributions/php-8.2.14.tar.xz.asc"
PHP_URL
"https://www.php.net/distributions/php-8.2.14.tar.xz"
PATH
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
WWWUSER_ID
"1000"
WWWGROUP_ID
"1000"
PHPIZE_DEPS
"autoconf \t\tdpkg-dev \t\tfile \t\tg++ \t\tgcc \t\tlibc-dev \t\tmake \t\tpkg-config \t\tre2c"
PWD
"/var/www/html"
PHP_SHA256
"763ecd39fcf51c3815af6ef6e43fa9aa0d0bd8e5a615009e5f4780c92705f583"
USER
"www-data"
HTTP_ACCEPT_ENCODING
"gzip, br, zstd, deflate"
HTTP_USER_AGENT
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
HTTP_ACCEPT
"*/*"
HTTP_HOST
"fischers-cloud.de"
PATH_INFO
""
SCRIPT_FILENAME
"/www/grav.test/html/index.php"
REDIRECT_STATUS
"200"
SERVER_NAME
"fischers-cloud.de"
SERVER_PORT
"443"
SERVER_ADDR
"172.18.0.3"
REMOTE_PORT
"4302"
REMOTE_ADDR
"216.73.216.123"
SERVER_SOFTWARE
"nginx/1.28.0"
GATEWAY_INTERFACE
"CGI/1.1"
HTTPS
"on"
REQUEST_SCHEME
"https"
SERVER_PROTOCOL
"HTTP/2.0"
DOCUMENT_ROOT
"/www/grav.test/html"
DOCUMENT_URI
"/index.php"
REQUEST_URI
"/"
SCRIPT_NAME
"/index.php"
CONTENT_LENGTH
""
CONTENT_TYPE
""
REQUEST_METHOD
"GET"
QUERY_STRING
""
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1756065276.2478
REQUEST_TIME
1756065276
argv
[]
argc
0
Key Value
HOSTNAME
"0e6b995d93f6"
PHP_INI_DIR
"/usr/local/etc/php"
HOME
"/var/www"
PHP_LDFLAGS
"-Wl,-O1 -pie"
PHP_CFLAGS
"-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
PHP_VERSION
"8.2.14"
GPG_KEYS
"39B641343D8C104B2B146DC3F9C39DC0B9698544 E60913E4DF209907D8E30D96659A97C9CF2A795A 1198C0117593497A5EC5C199286AF1F9897469DC"
PHP_CPPFLAGS
"-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
PHP_ASC_URL
"https://www.php.net/distributions/php-8.2.14.tar.xz.asc"
PHP_URL
"https://www.php.net/distributions/php-8.2.14.tar.xz"
PATH
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
WWWUSER_ID
"1000"
WWWGROUP_ID
"1000"
PHPIZE_DEPS
"autoconf \t\tdpkg-dev \t\tfile \t\tg++ \t\tgcc \t\tlibc-dev \t\tmake \t\tpkg-config \t\tre2c"
PWD
"/var/www/html"
PHP_SHA256
"763ecd39fcf51c3815af6ef6e43fa9aa0d0bd8e5a615009e5f4780c92705f583"
USER
"www-data"
HTTP_ACCEPT_ENCODING
"gzip, br, zstd, deflate"
HTTP_USER_AGENT
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
HTTP_ACCEPT
"*/*"
HTTP_HOST
"fischers-cloud.de"
PATH_INFO
""
SCRIPT_FILENAME
"/www/grav.test/html/index.php"
REDIRECT_STATUS
"200"
SERVER_NAME
"fischers-cloud.de"
SERVER_PORT
"443"
SERVER_ADDR
"172.18.0.3"
REMOTE_PORT
"4302"
REMOTE_ADDR
"216.73.216.123"
SERVER_SOFTWARE
"nginx/1.28.0"
GATEWAY_INTERFACE
"CGI/1.1"
HTTPS
"on"
REQUEST_SCHEME
"https"
SERVER_PROTOCOL
"HTTP/2.0"
DOCUMENT_ROOT
"/www/grav.test/html"
DOCUMENT_URI
"/index.php"
REQUEST_URI
"/"
SCRIPT_NAME
"/index.php"
CONTENT_LENGTH
""
CONTENT_TYPE
""
REQUEST_METHOD
"GET"
QUERY_STRING
""
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1756065276.2478
REQUEST_TIME
1756065276
argv
[]
argc
0
0. Whoops\Handler\PrettyPageHandler
1. Whoops\Handler\CallbackHandler