Error
Call to undefined method Grav\Theme\Optimhome::api() Error thrown with message "Call to undefined method Grav\Theme\Optimhome::api()" Stacktrace: #48 Error in /var/app/current/user/themes/optimhome/optimhome.php:435 #47 Grav\Theme\Optimhome:onPagesInitialized in /var/app/current/vendor/symfony/event-dispatcher/EventDispatcher.php:212 #46 Symfony\Component\EventDispatcher\EventDispatcher:doDispatch in /var/app/current/vendor/symfony/event-dispatcher/EventDispatcher.php:44 #45 Symfony\Component\EventDispatcher\EventDispatcher:dispatch in /var/app/current/vendor/rockettheme/toolbox/Event/src/EventDispatcher.php:23 #44 RocketTheme\Toolbox\Event\EventDispatcher:dispatch in /var/app/current/system/src/Grav/Common/Grav.php:365 #43 Grav\Common\Grav:fireEvent in /var/app/current/system/src/Grav/Common/Processors/PagesProcessor.php:31 #42 Grav\Common\Processors\PagesProcessor:process in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:45 #41 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:57 #40 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Common/Processors/TwigProcessor.php:27 #39 Grav\Common\Processors\TwigProcessor:process in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:45 #38 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:57 #37 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Common/Processors/AssetsProcessor.php:28 #36 Grav\Common\Processors\AssetsProcessor:process in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:45 #35 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:57 #34 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Common/Processors/SchedulerProcessor.php:29 #33 Grav\Common\Processors\SchedulerProcessor:process in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:45 #32 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:57 #31 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Common/Processors/BackupsProcessor.php:28 #30 Grav\Common\Processors\BackupsProcessor:process in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:45 #29 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:57 #28 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Common/Processors/TasksProcessor.php:59 #27 Grav\Common\Processors\TasksProcessor:process in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:45 #26 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:57 #25 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Common/Processors/RequestProcessor.php:52 #24 Grav\Common\Processors\RequestProcessor:process in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:45 #23 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:57 #22 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Common/Processors/ThemesProcessor.php:27 #21 Grav\Common\Processors\ThemesProcessor:process in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:45 #20 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:57 #19 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Common/Processors/PluginsProcessor.php:30 #18 Grav\Common\Processors\PluginsProcessor:process in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:45 #17 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:57 #16 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Common/Processors/InitializeProcessor.php:78 #15 Grav\Common\Processors\InitializeProcessor:process in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:45 #14 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:57 #13 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Common/Processors/DebuggerProcessor.php:27 #12 Grav\Common\Processors\DebuggerProcessor:process in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:45 #11 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:57 #10 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Common/Processors/ErrorsProcessor.php:27 #9 Grav\Common\Processors\ErrorsProcessor:process in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:45 #8 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:57 #7 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Common/Processors/LoggerProcessor.php:48 #6 Grav\Common\Processors\LoggerProcessor:process in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:45 #5 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:57 #4 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Common/Processors/ConfigurationProcessor.php:28 #3 Grav\Common\Processors\ConfigurationProcessor:process in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:45 #2 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:57 #1 Grav\Framework\RequestHandler\RequestHandler:handle in /var/app/current/system/src/Grav/Common/Grav.php:249 #0 Grav\Common\Grav:process in /var/app/current/index.php:53
Stack frames (49)
48
Error
/
user
/
themes
/
optimhome
/
optimhome.php
435
47
Grav
\
Theme
\
Optimhome
onPagesInitialized
/
vendor
/
symfony
/
event-dispatcher
/
EventDispatcher.php
212
46
Symfony
\
Component
\
EventDispatcher
\
EventDispatcher
doDispatch
/
vendor
/
symfony
/
event-dispatcher
/
EventDispatcher.php
44
45
Symfony
\
Component
\
EventDispatcher
\
EventDispatcher
dispatch
/
vendor
/
rockettheme
/
toolbox
/
Event
/
src
/
EventDispatcher.php
23
44
RocketTheme
\
Toolbox
\
Event
\
EventDispatcher
dispatch
/
system
/
src
/
Grav
/
Common
/
Grav.php
365
43
Grav
\
Common
\
Grav
fireEvent
/
system
/
src
/
Grav
/
Common
/
Processors
/
PagesProcessor.php
31
42
Grav
\
Common
\
Processors
\
PagesProcessor
process
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
45
41
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
57
40
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Common
/
Processors
/
TwigProcessor.php
27
39
Grav
\
Common
\
Processors
\
TwigProcessor
process
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
45
38
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
57
37
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Common
/
Processors
/
AssetsProcessor.php
28
36
Grav
\
Common
\
Processors
\
AssetsProcessor
process
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
45
35
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
57
34
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Common
/
Processors
/
SchedulerProcessor.php
29
33
Grav
\
Common
\
Processors
\
SchedulerProcessor
process
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
45
32
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
57
31
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Common
/
Processors
/
BackupsProcessor.php
28
30
Grav
\
Common
\
Processors
\
BackupsProcessor
process
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
45
29
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
57
28
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Common
/
Processors
/
TasksProcessor.php
59
27
Grav
\
Common
\
Processors
\
TasksProcessor
process
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
45
26
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
57
25
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Common
/
Processors
/
RequestProcessor.php
52
24
Grav
\
Common
\
Processors
\
RequestProcessor
process
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
45
23
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
57
22
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Common
/
Processors
/
ThemesProcessor.php
27
21
Grav
\
Common
\
Processors
\
ThemesProcessor
process
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
45
20
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
57
19
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Common
/
Processors
/
PluginsProcessor.php
30
18
Grav
\
Common
\
Processors
\
PluginsProcessor
process
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
45
17
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
57
16
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Common
/
Processors
/
InitializeProcessor.php
78
15
Grav
\
Common
\
Processors
\
InitializeProcessor
process
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
45
14
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
57
13
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Common
/
Processors
/
DebuggerProcessor.php
27
12
Grav
\
Common
\
Processors
\
DebuggerProcessor
process
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
45
11
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
57
10
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Common
/
Processors
/
ErrorsProcessor.php
27
9
Grav
\
Common
\
Processors
\
ErrorsProcessor
process
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
45
8
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
57
7
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Common
/
Processors
/
LoggerProcessor.php
48
6
Grav
\
Common
\
Processors
\
LoggerProcessor
process
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
45
5
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
57
4
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Common
/
Processors
/
ConfigurationProcessor.php
28
3
Grav
\
Common
\
Processors
\
ConfigurationProcessor
process
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
45
2
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Framework
/
RequestHandler
/
Traits
/
RequestHandlerTrait.php
57
1
Grav
\
Framework
\
RequestHandler
\
RequestHandler
handle
/
system
/
src
/
Grav
/
Common
/
Grav.php
249
0
Grav
\
Common
\
Grav
process
/
index.php
53
/
var
/
app
/
current
/
user
/
themes
/
optimhome
/
optimhome.php
                $this->activePage['currentLetter'] = $matches['letter'];
            }
            return $this->activePage;
        }
 
 
        $uri = $this->grav['uri'];
        if (strpos($uri->path(), '/' . $this->route) === false) {
            return;
        }
 
        $paths = $this->grav['uri']->paths();
        $paths = array_splice($paths, 1);
        $resource = $paths[0];
        $params = array();
        parse_str($this->grav['uri']->query(), $params);
 
        if ($resource) {
            $this->_setHeaders();
            echo json_encode($this->$resource($params));
        } else {
            header('HTTP/1.1 404 Not Found');
        }
 
        exit();
    }
 
    public function getPropertyTypeFromSlug($slugname)
    {
        if (null === $this->_propertyTypeSlugs) {
            /** @var Grav $grav */
            $grav = Grav::instance();
            $slugify = new Slugify;
 
            $this->_propertyTypeSlugs = [];
            foreach ($grav['languages']->get($grav['language']->getLanguage()) as $key => $value) {
                if (is_string($value)) {
                    $this->_propertyTypeSlugs[$slugify->slugify($value)] = $key;
                }
            }
Arguments
  1. "Call to undefined method Grav\Theme\Optimhome::api()"
    
/
var
/
app
/
current
/
vendor
/
symfony
/
event-dispatcher
/
EventDispatcher.php
        }
    }
 
    /**
     * Triggers the listeners of an event.
     *
     * This method can be overridden to add functionality that is executed
     * for each listener.
     *
     * @param callable[] $listeners The event listeners
     * @param string     $eventName The name of the event to dispatch
     * @param Event      $event     The event object to pass to the event handlers/listeners
     */
    protected function doDispatch($listeners, $eventName, Event $event)
    {
        foreach ($listeners as $listener) {
            if ($event->isPropagationStopped()) {
                break;
            }
            $listener($event, $eventName, $this);
        }
    }
 
    /**
     * Sorts the internal list of listeners for the given event by priority.
     *
     * @param string $eventName The name of the event
     */
    private function sortListeners($eventName)
    {
        krsort($this->listeners[$eventName]);
        $this->sorted[$eventName] = [];
 
        foreach ($this->listeners[$eventName] as $priority => $listeners) {
            foreach ($listeners as $k => $listener) {
                if (\is_array($listener) && isset($listener[0]) && $listener[0] instanceof \Closure) {
                    $listener[0] = $listener[0]();
                    $this->listeners[$eventName][$priority][$k] = $listener;
                }
                $this->sorted[$eventName][] = $listener;
Arguments
  1. Event {#755}
    
  2. "onPagesInitialized"
    
  3. EventDispatcher {#144}
    
/
var
/
app
/
current
/
vendor
/
symfony
/
event-dispatcher
/
EventDispatcher.php
 * @author Jordi Boggiano <[email protected]>
 * @author Jordan Alliot <[email protected]>
 * @author Nicolas Grekas <[email protected]>
 */
class EventDispatcher implements EventDispatcherInterface
{
    private $listeners = [];
    private $sorted = [];
 
    /**
     * {@inheritdoc}
     */
    public function dispatch($eventName, Event $event = null)
    {
        if (null === $event) {
            $event = new Event();
        }
 
        if ($listeners = $this->getListeners($eventName)) {
            $this->doDispatch($listeners, $eventName, $event);
        }
 
        return $event;
    }
 
    /**
     * {@inheritdoc}
     */
    public function getListeners($eventName = null)
    {
        if (null !== $eventName) {
            if (empty($this->listeners[$eventName])) {
                return [];
            }
 
            if (!isset($this->sorted[$eventName])) {
                $this->sortListeners($eventName);
            }
 
            return $this->sorted[$eventName];
Arguments
  1. array:8 [
      0 => array:2 [
        0 => FormToPrmPlugin {#111}
        1 => "onPagesInitialized"
      ]
      1 => array:2 [
        0 => SEOFactoryPlugin {#119}
        1 => "onPagesInitialized"
      ]
      2 => array:2 [
        0 => LoginPlugin {#115}
        1 => "storeReferrerPage"
      ]
      3 => array:2 [
        0 => LoginPlugin {#115}
        1 => "pageVisibility"
      ]
      4 => array:2 [
        0 => LoginIntranetPlugin {#116}
        1 => "storeReferrerPage"
      ]
      5 => array:2 [
        0 => FormPlugin {#110}
        1 => "onPagesInitialized"
      ]
      6 => array:2 [
        0 => LoginIntranetPlugin {#116}
        1 => "userConnexion"
      ]
      7 => array:2 [
        0 => Optimhome {#202}
        1 => "onPagesInitialized"
      ]
    ]
    
  2. "onPagesInitialized"
    
  3. Event {#755}
    
/
var
/
app
/
current
/
vendor
/
rockettheme
/
toolbox
/
Event
/
src
/
EventDispatcher.php
use Symfony\Component\EventDispatcher\Event as BaseEvent;
use Symfony\Component\EventDispatcher\EventDispatcher as BaseEventDispatcher;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 
/**
 * Implements Symfony EventDispatcher interface.
 *
 * @package RocketTheme\Toolbox\Event
 * @author RocketTheme
 * @license MIT
 */
class EventDispatcher extends BaseEventDispatcher implements EventDispatcherInterface
{
    public function dispatch($eventName, BaseEvent $event = null)
    {
        if (null === $event) {
            $event = new Event();
        }
 
        return parent::dispatch($eventName, $event);
    }
}
 
Arguments
  1. "onPagesInitialized"
    
  2. Event {#755}
    
/
var
/
app
/
current
/
system
/
src
/
Grav
/
Common
/
Grav.php
            foreach ($values as $i => $value) {
                header($key . ': ' . $value, $i === 0);
            }
        }
    }
 
    /**
     * Fires an event with optional parameters.
     *
     * @param  string $eventName
     * @param  Event  $event
     *
     * @return Event
     */
    public function fireEvent($eventName, Event $event = null)
    {
        /** @var EventDispatcher $events */
        $events = $this['events'];
 
        return $events->dispatch($eventName, $event);
    }
 
    /**
     * Set the final content length for the page and flush the buffer
     *
     */
    public function shutdown()
    {
        // Prevent user abort allowing onShutdown event to run without interruptions.
        if (\function_exists('ignore_user_abort')) {
            @ignore_user_abort(true);
        }
 
        // Close the session allowing new requests to be handled.
        if (isset($this['session'])) {
            $this['session']->close();
        }
 
        if ($this['config']->get('system.debugger.shutdown.close_connection', true)) {
            // Flush the response and close the connection to allow time consuming tasks to be performed without leaving
Arguments
  1. "onPagesInitialized"
    
  2. Event {#755}
    
/
var
/
app
/
current
/
system
/
src
/
Grav
/
Common
/
Processors
/
PagesProcessor.php
use Grav\Common\Page\Interfaces\PageInterface;
use RocketTheme\Toolbox\Event\Event;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
 
class PagesProcessor extends ProcessorBase
{
    public $id = 'pages';
    public $title = 'Pages';
 
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
    {
        $this->startTimer();
 
        // Dump Cache state
        $this->container['debugger']->addMessage($this->container['cache']->getCacheStatus());
 
        $this->container['pages']->init();
        $this->container->fireEvent('onPagesInitialized', new Event(['pages' => $this->container['pages']]));
        $this->container->fireEvent('onPageInitialized', new Event(['page' => $this->container['page']]));
 
        /** @var PageInterface $page */
        $page = $this->container['page'];
 
        if (!$page->routable()) {
            // If no page found, fire event
            $event = new Event(['page' => $page]);
            $event->page = null;
            $event = $this->container->fireEvent('onPageNotFound', $event);
 
            if (isset($event->page)) {
                unset ($this->container['page']);
                $this->container['page'] = $page = $event->page;
            } else {
                throw new \RuntimeException('Page Not Found', 404);
            }
 
            $this->addMessage("Routed to page {$page->rawRoute()} (type: {$page->template()}) [Not Found fallback]");
        } else {
Arguments
  1. "onPagesInitialized"
    
  2. Event {#755}
    
/
var
/
app
/
current
/
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 {#210}
    
  2. RequestHandler {#461}
    
/
var
/
app
/
current
/
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 {#210}
    
/
var
/
app
/
current
/
system
/
src
/
Grav
/
Common
/
Processors
/
TwigProcessor.php
 */
 
namespace Grav\Common\Processors;
 
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
 
class TwigProcessor extends ProcessorBase
{
    public $id = 'twig';
    public $title = 'Twig';
 
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
    {
        $this->startTimer();
        $this->container['twig']->init();
        $this->stopTimer();
 
        return $handler->handle($request);
    }
}
 
Arguments
  1. ServerRequest {#210}
    
/
var
/
app
/
current
/
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 {#210}
    
  2. RequestHandler {#253}
    
/
var
/
app
/
current
/
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 {#210}
    
/
var
/
app
/
current
/
system
/
src
/
Grav
/
Common
/
Processors
/
AssetsProcessor.php
 
namespace Grav\Common\Processors;
 
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
 
class AssetsProcessor extends ProcessorBase
{
    public $id = '_assets';
    public $title = 'Assets';
 
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
    {
        $this->startTimer();
        $this->container['assets']->init();
        $this->container->fireEvent('onAssetsInitialized');
        $this->stopTimer();
 
        return $handler->handle($request);
    }
}
 
Arguments
  1. ServerRequest {#210}
    
/
var
/
app
/
current
/
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 {#210}
    
  2. RequestHandler {#250}
    
/
var
/
app
/
current
/
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 {#210}
    
/
var
/
app
/
current
/
system
/
src
/
Grav
/
Common
/
Processors
/
SchedulerProcessor.php
namespace Grav\Common\Processors;
 
use RocketTheme\Toolbox\Event\Event;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
 
class SchedulerProcessor extends ProcessorBase
{
    public $id = '_scheduler';
    public $title = 'Scheduler';
 
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
    {
        $this->startTimer();
        $scheduler = $this->container['scheduler'];
        $this->container->fireEvent('onSchedulerInitialized', new Event(['scheduler' => $scheduler]));
        $this->stopTimer();
 
        return $handler->handle($request);
    }
}
 
Arguments
  1. ServerRequest {#210}
    
/
var
/
app
/
current
/
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 {#210}
    
  2. RequestHandler {#220}
    
/
var
/
app
/
current
/
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 {#210}
    
/
var
/
app
/
current
/
system
/
src
/
Grav
/
Common
/
Processors
/
BackupsProcessor.php
 
namespace Grav\Common\Processors;
 
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
 
class BackupsProcessor extends ProcessorBase
{
    public $id = '_backups';
    public $title = 'Backups';
 
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
    {
        $this->startTimer();
        $backups = $this->container['backups'];
        $backups->init();
        $this->stopTimer();
 
        return $handler->handle($request);
    }
}
 
Arguments
  1. ServerRequest {#210}
    
/
var
/
app
/
current
/
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 {#210}
    
  2. RequestHandler {#217}
    
/
var
/
app
/
current
/
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 {#210}
    
/
var
/
app
/
current
/
system
/
src
/
Grav
/
Common
/
Processors
/
TasksProcessor.php
                    }
 
                    $this->stopTimer();
 
                    return $response;
 
                } catch (NotFoundException $e) {
                    // Task not found: Let it pass through.
                }
            }
 
            if ($task) {
                $this->container->fireEvent('onTask.' . $task);
            } elseif ($action) {
                $this->container->fireEvent('onAction.' . $action);
            }
        }
        $this->stopTimer();
 
        return $handler->handle($request);
    }
}
 
Arguments
  1. ServerRequest {#210}
    
/
var
/
app
/
current
/
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 {#210}
    
  2. RequestHandler {#215}
    
/
var
/
app
/
current
/
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 {#210}
    
/
var
/
app
/
current
/
system
/
src
/
Grav
/
Common
/
Processors
/
RequestProcessor.php
        $uri = $request->getUri();
        $ext = mb_strtolower(pathinfo($uri->getPath(), PATHINFO_EXTENSION));
 
        $request = $request
            ->withAttribute('grav', $this->container)
            ->withAttribute('time', $_SERVER['REQUEST_TIME_FLOAT'] ?? GRAV_REQUEST_TIME)
            ->withAttribute('route', Uri::getCurrentRoute()->withExtension($ext))
            ->withAttribute('referrer', $this->container['uri']->referrer());
 
        $event = new RequestHandlerEvent(['request' => $request, 'handler' => $handler]);
        /** @var RequestHandlerEvent $event */
        $event = $this->container->fireEvent('onRequestHandlerInit', $event);
        $response = $event->getResponse();
        $this->stopTimer();
 
        if ($response) {
            return $response;
        }
 
        return $handler->handle($request);
    }
}
 
Arguments
  1. ServerRequest {#210}
    
/
var
/
app
/
current
/
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 {#210}
    
  2. RequestHandler {#208}
    
/
var
/
app
/
current
/
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 {#67}
    
/
var
/
app
/
current
/
system
/
src
/
Grav
/
Common
/
Processors
/
ThemesProcessor.php
 */
 
namespace Grav\Common\Processors;
 
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
 
class ThemesProcessor extends ProcessorBase
{
    public $id = 'themes';
    public $title = 'Themes';
 
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
    {
        $this->startTimer();
        $this->container['themes']->init();
        $this->stopTimer();
 
        return $handler->handle($request);
    }
}
 
Arguments
  1. ServerRequest {#67}
    
/
var
/
app
/
current
/
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 {#67}
    
  2. RequestHandler {#200}
    
/
var
/
app
/
current
/
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 {#67}
    
/
var
/
app
/
current
/
system
/
src
/
Grav
/
Common
/
Processors
/
PluginsProcessor.php
 
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
 
class PluginsProcessor extends ProcessorBase
{
    public $id = 'plugins';
    public $title = 'Plugins';
 
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
    {
        $this->startTimer();
        // TODO: remove in 2.0.
        $this->container['accounts'];
        $this->container['plugins']->init();
        $this->container->fireEvent('onPluginsInitialized');
        $this->stopTimer();
 
        return $handler->handle($request);
    }
}
 
Arguments
  1. ServerRequest {#67}
    
/
var
/
app
/
current
/
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 {#67}
    
  2. RequestHandler {#143}
    
/
var
/
app
/
current
/
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 {#67}
    
/
var
/
app
/
current
/
system
/
src
/
Grav
/
Common
/
Processors
/
InitializeProcessor.php
        }
 
        /** @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);
        }
 
        $this->container->setLocale();
        $this->stopTimer();
 
        return $handler->handle($request);
    }
}
 
Arguments
  1. ServerRequest {#67}
    
/
var
/
app
/
current
/
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 {#67}
    
  2. RequestHandler {#136}
    
/
var
/
app
/
current
/
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 {#67}
    
/
var
/
app
/
current
/
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 {#67}
    
/
var
/
app
/
current
/
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 {#67}
    
  2. RequestHandler {#134}
    
/
var
/
app
/
current
/
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 {#67}
    
/
var
/
app
/
current
/
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 {#67}
    
/
var
/
app
/
current
/
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 {#67}
    
  2. RequestHandler {#122}
    
/
var
/
app
/
current
/
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 {#67}
    
/
var
/
app
/
current
/
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 {#67}
    
/
var
/
app
/
current
/
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 {#67}
    
  2. RequestHandler {#100}
    
/
var
/
app
/
current
/
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 {#67}
    
/
var
/
app
/
current
/
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 {#67}
    
/
var
/
app
/
current
/
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 {#67}
    
  2. RequestHandler {#93}
    
/
var
/
app
/
current
/
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 {#67}
    
/
var
/
app
/
current
/
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']);
 
        $this->header($response);
        echo $response->getBody();
 
        $debugger->render();
 
        register_shutdown_function([$this, 'shutdown']);
    }
 
    /**
     * Set the system locale based on the language and configuration
     */
    public function setLocale()
    {
        // Initialize Locale if set and configured.
        if ($this['language']->enabled() && $this['config']->get('system.languages.override_locale')) {
            $language = $this['language']->getLanguage();
            setlocale(LC_ALL, \strlen($language) < 3 ? ($language . '_' . strtoupper($language)) : $language);
        } elseif ($this['config']->get('system.default_locale')) {
            setlocale(LC_ALL, $this['config']->get('system.default_locale'));
Arguments
  1. ServerRequest {#67}
    
/
var
/
app
/
current
/
index.php
 
// Set timezone to default, falls back to system if php.ini not set
date_default_timezone_set(@date_default_timezone_get());
 
// Set internal encoding if mbstring loaded
if (!\extension_loaded('mbstring')) {
    die("'mbstring' extension is not loaded.  This is required for Grav to run correctly");
}
mb_internal_encoding('UTF-8');
 
// Get the Grav instance
$grav = Grav::instance(
    array(
        'loader' => $loader
    )
);
 
// Process the page
try {
    $grav->process();
} catch (\Error $e) {
    $grav['log']->error('Error.' . __CLASS__ . ':' . __METHOD__ . ': ' . print_r([
            'msg'   => $e->getMessage(),
            'url'   => $grav['page']->url(),
            'uri'   => $grav['uri']->route(),
            'trace' => $e->getTraceAsString(),
        ], true));
    $grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
    throw $e;
} catch (\Exception $e) {
    $grav['log']->error('Exception.' . __CLASS__ . ':' . __METHOD__ . ': ' . print_r([
            'msg'   => $e->getMessage(),
            'url'   => $grav['page']->url(),
            'uri'   => $grav['uri']->route(),
            'trace' => $e->getTraceAsString(),
        ], true));
    $grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
    throw $e;
}
 

Environment & details:

Key Value
id
"OHPT6242C"
empty
empty
empty
Key Value
redirect_after_login
null
redirect_after_auth
"/mon-compte"
Key Value
TEMP
"/tmp"
TMPDIR
"/tmp"
TMP
"/tmp"
HOSTNAME
""
USER
"webapp"
HOME
"/home/webapp"
HTTP_CONNECTION
"keep-alive"
HTTP_X_FORWARDED_PROTO
"https"
HTTP_X_FORWARDED_PORT
"443"
HTTP_X_FORWARDED_FOR
"44.200.169.91, 172.70.38.119"
HTTP_USER_AGENT
"claudebot"
HTTP_CF_VISITOR
"{"scheme":"https"}"
HTTP_CF_RAY
"86b6f09a2a7f3988-IAD"
HTTP_CF_IPCOUNTRY
"US"
HTTP_CF_CONNECTING_IP
"44.200.169.91"
HTTP_CDN_LOOP
"cloudflare"
HTTP_ACCEPT_ENCODING
"gzip, br"
HTTP_ACCEPT
"*/*"
HTTP_HOST
"www.optimhome.com"
SCRIPT_FILENAME
"/var/www/html/index.php"
PATH_INFO
""
REDIRECT_STATUS
"200"
SERVER_NAME
"_"
SERVER_PORT
"80"
SERVER_ADDR
"10.20.6.9"
REMOTE_PORT
"30830"
REMOTE_ADDR
"10.20.13.45"
SERVER_SOFTWARE
"nginx/1.18.0"
GATEWAY_INTERFACE
"CGI/1.1"
REQUEST_SCHEME
"http"
SERVER_PROTOCOL
"HTTP/1.1"
DOCUMENT_ROOT
"/var/www/html"
DOCUMENT_URI
"/index.php"
REQUEST_URI
"/pt/api/propertyToPdf?id=OHPT6242C"
SCRIPT_NAME
"/index.php"
CONTENT_LENGTH
""
CONTENT_TYPE
""
REQUEST_METHOD
"GET"
QUERY_STRING
"id=OHPT6242C"
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1711621774.4811
REQUEST_TIME
1711621774
Key Value
TEMP
"/tmp"
TMPDIR
"/tmp"
TMP
"/tmp"
HOSTNAME
""
USER
"webapp"
HOME
"/home/webapp"
HTTP_CONNECTION
"keep-alive"
HTTP_X_FORWARDED_PROTO
"https"
HTTP_X_FORWARDED_PORT
"443"
HTTP_X_FORWARDED_FOR
"44.200.169.91, 172.70.38.119"
HTTP_USER_AGENT
"claudebot"
HTTP_CF_VISITOR
"{"scheme":"https"}"
HTTP_CF_RAY
"86b6f09a2a7f3988-IAD"
HTTP_CF_IPCOUNTRY
"US"
HTTP_CF_CONNECTING_IP
"44.200.169.91"
HTTP_CDN_LOOP
"cloudflare"
HTTP_ACCEPT_ENCODING
"gzip, br"
HTTP_ACCEPT
"*/*"
HTTP_HOST
"www.optimhome.com"
SCRIPT_FILENAME
"/var/www/html/index.php"
PATH_INFO
""
REDIRECT_STATUS
"200"
SERVER_NAME
"_"
SERVER_PORT
"80"
SERVER_ADDR
"10.20.6.9"
REMOTE_PORT
"30830"
REMOTE_ADDR
"10.20.13.45"
SERVER_SOFTWARE
"nginx/1.18.0"
GATEWAY_INTERFACE
"CGI/1.1"
REQUEST_SCHEME
"http"
SERVER_PROTOCOL
"HTTP/1.1"
DOCUMENT_ROOT
"/var/www/html"
DOCUMENT_URI
"/index.php"
REQUEST_URI
"/pt/api/propertyToPdf?id=OHPT6242C"
SCRIPT_NAME
"/index.php"
CONTENT_LENGTH
""
CONTENT_TYPE
""
REQUEST_METHOD
"GET"
QUERY_STRING
"id=OHPT6242C"
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1711621774.4811
REQUEST_TIME
1711621774
0. Whoops\Handler\PrettyPageHandler
1. Whoops\Handler\CallbackHandler