Whoops \ Exception \ ErrorException (E_NOTICE)
Trying to access array offset on value of type null Whoops\Exception\ErrorException thrown with message "Trying to access array offset on value of type null" Stacktrace: #14 Whoops\Exception\ErrorException in /home/erq/retraite.erq.qc.ca/system/src/Grav/Common/Page/Pages.php:1242 #13 Whoops\Run:handleError in /home/erq/retraite.erq.qc.ca/system/src/Grav/Common/Page/Pages.php:1242 #12 Grav\Common\Page\Pages:buildSort in /home/erq/retraite.erq.qc.ca/system/src/Grav/Common/Page/Pages.php:298 #11 Grav\Common\Page\Pages:sort in /home/erq/retraite.erq.qc.ca/system/src/Grav/Common/Page/Pages.php:1125 #10 Grav\Common\Page\Pages:recurse in /home/erq/retraite.erq.qc.ca/system/src/Grav/Common/Page/Pages.php:1091 #9 Grav\Common\Page\Pages:recurse in /home/erq/retraite.erq.qc.ca/system/src/Grav/Common/Page/Pages.php:947 #8 Grav\Common\Page\Pages:resetPages in /home/erq/retraite.erq.qc.ca/system/src/Grav/Common/Page/Pages.php:927 #7 Grav\Common\Page\Pages:buildPages in /home/erq/retraite.erq.qc.ca/system/src/Grav/Common/Page/Pages.php:213 #6 Grav\Common\Page\Pages:init in /home/erq/retraite.erq.qc.ca/system/src/Grav/Common/Processors/PagesProcessor.php:24 #5 Grav\Common\Processors\PagesProcessor:process in /home/erq/retraite.erq.qc.ca/system/src/Grav/Common/Grav.php:132 #4 Grav\Common\Grav:Grav\Common\{closure} in /home/erq/retraite.erq.qc.ca/system/src/Grav/Common/Grav.php:374 #3 Grav\Common\Grav:Grav\Common\{closure} in /home/erq/retraite.erq.qc.ca/system/src/Grav/Common/Grav.php:350 #2 call_user_func_array in /home/erq/retraite.erq.qc.ca/system/src/Grav/Common/Grav.php:350 #1 Grav\Common\Grav:__call in /home/erq/retraite.erq.qc.ca/system/src/Grav/Common/Grav.php:133 #0 Grav\Common\Grav:process in /home/erq/retraite.erq.qc.ca/index.php:52
Stack frames (15)
14
Whoops
\
Exception
\
ErrorException
/
system
/
src
/
Grav
/
Common
/
Page
/
Pages.php
1242
13
Whoops
\
Run
handleError
/
system
/
src
/
Grav
/
Common
/
Page
/
Pages.php
1242
12
Grav
\
Common
\
Page
\
Pages
buildSort
/
system
/
src
/
Grav
/
Common
/
Page
/
Pages.php
298
11
Grav
\
Common
\
Page
\
Pages
sort
/
system
/
src
/
Grav
/
Common
/
Page
/
Pages.php
1125
10
Grav
\
Common
\
Page
\
Pages
recurse
/
system
/
src
/
Grav
/
Common
/
Page
/
Pages.php
1091
9
Grav
\
Common
\
Page
\
Pages
recurse
/
system
/
src
/
Grav
/
Common
/
Page
/
Pages.php
947
8
Grav
\
Common
\
Page
\
Pages
resetPages
/
system
/
src
/
Grav
/
Common
/
Page
/
Pages.php
927
7
Grav
\
Common
\
Page
\
Pages
buildPages
/
system
/
src
/
Grav
/
Common
/
Page
/
Pages.php
213
6
Grav
\
Common
\
Page
\
Pages
init
/
system
/
src
/
Grav
/
Common
/
Processors
/
PagesProcessor.php
24
5
Grav
\
Common
\
Processors
\
PagesProcessor
process
/
system
/
src
/
Grav
/
Common
/
Grav.php
132
4
Grav
\
Common
\
Grav
Grav
\
Common
\
{closure}
/
system
/
src
/
Grav
/
Common
/
Grav.php
374
3
Grav
\
Common
\
Grav
Grav
\
Common
\
{closure}
/
system
/
src
/
Grav
/
Common
/
Grav.php
350
2
call_user_func_array
/
system
/
src
/
Grav
/
Common
/
Grav.php
350
1
Grav
\
Common
\
Grav
__call
/
system
/
src
/
Grav
/
Common
/
Grav.php
133
0
Grav
\
Common
\
Grav
process
/
index.php
52
/
home
/
erq
/
retraite.erq.qc.ca
/
system
/
src
/
Grav
/
Common
/
Page
/
Pages.php
                    $sort_flags = SORT_REGULAR;
                    break;
                case 'publish_date':
                    $list[$key] = $child->publishDate();
                    $sort_flags = SORT_REGULAR;
                    break;
                case 'unpublish_date':
                    $list[$key] = $child->unpublishDate();
                    $sort_flags = SORT_REGULAR;
                    break;
                case 'slug':
                    $list[$key] = $child->slug();
                    break;
                case 'basename':
                    $list[$key] = basename($key);
                    break;
                case 'folder':
                    $list[$key] = $child->folder();
                    break;
                case (is_string($header_query[0])):
                    $child_header = new Header((array)$child->header());
                    $header_value = $child_header->get($header_query[0]);
                    if (is_array($header_value)) {
                        $list[$key] = implode(',',$header_value);
                    } elseif ($header_value) {
                        $list[$key] = $header_value;
                    } else {
                        $list[$key] = $header_default ?: $key;
                    }
                    $sort_flags = $sort_flags ?: SORT_REGULAR;
                    break;
                case 'manual':
                case 'default':
                default:
                    $list[$key] = $key;
                    $sort_flags = $sort_flags ?: SORT_REGULAR;
            }
        }
 
        if (!$sort_flags) {
Arguments
  1. "Trying to access array offset on value of type null"
    
/
home
/
erq
/
retraite.erq.qc.ca
/
system
/
src
/
Grav
/
Common
/
Page
/
Pages.php
                    $sort_flags = SORT_REGULAR;
                    break;
                case 'publish_date':
                    $list[$key] = $child->publishDate();
                    $sort_flags = SORT_REGULAR;
                    break;
                case 'unpublish_date':
                    $list[$key] = $child->unpublishDate();
                    $sort_flags = SORT_REGULAR;
                    break;
                case 'slug':
                    $list[$key] = $child->slug();
                    break;
                case 'basename':
                    $list[$key] = basename($key);
                    break;
                case 'folder':
                    $list[$key] = $child->folder();
                    break;
                case (is_string($header_query[0])):
                    $child_header = new Header((array)$child->header());
                    $header_value = $child_header->get($header_query[0]);
                    if (is_array($header_value)) {
                        $list[$key] = implode(',',$header_value);
                    } elseif ($header_value) {
                        $list[$key] = $header_value;
                    } else {
                        $list[$key] = $header_default ?: $key;
                    }
                    $sort_flags = $sort_flags ?: SORT_REGULAR;
                    break;
                case 'manual':
                case 'default':
                default:
                    $list[$key] = $key;
                    $sort_flags = $sort_flags ?: SORT_REGULAR;
            }
        }
 
        if (!$sort_flags) {
Arguments
  1. 8
    
  2. "Trying to access array offset on value of type null"
    
  3. "/home/erq/retraite.erq.qc.ca/system/src/Grav/Common/Page/Pages.php"
    
  4. 1242
    
  5. array:11 [
      "path" => "/home/erq/retraite.erq.qc.ca/user/pages/01.home"
      "pages" => array:17 [
        "/home/erq/retraite.erq.qc.ca/user/pages/01.home/06._conferencier" => array:1 [
          "slug" => "_conferencier"
        ]
        "/home/erq/retraite.erq.qc.ca/user/pages/01.home/10._inscription" => array:1 [
          "slug" => "_inscription"
        ]
        "/home/erq/retraite.erq.qc.ca/user/pages/01.home/05._conference" => array:1 [
          "slug" => "_conference"
        ]
        "/home/erq/retraite.erq.qc.ca/user/pages/01.home/_photos-2018" => array:1 [
          "slug" => "_photos-2018"
        ]
        "/home/erq/retraite.erq.qc.ca/user/pages/01.home/03._30-ans" => array:1 [
          "slug" => "_30-ans"
        ]
        "/home/erq/retraite.erq.qc.ca/user/pages/01.home/09._tarifs" => array:1 [
          "slug" => "_tarifs"
        ]
        "/home/erq/retraite.erq.qc.ca/user/pages/01.home/14._photos-2013" => array:1 [
          "slug" => "_photos-2013"
        ]
        "/home/erq/retraite.erq.qc.ca/user/pages/01.home/11._QuoiApporter" => array:1 [
          "slug" => "_quoiapporter"
        ]
        "/home/erq/retraite.erq.qc.ca/user/pages/01.home/13._photos-2012" => array:1 [
          "slug" => "_photos-2012"
        ]
        "/home/erq/retraite.erq.qc.ca/user/pages/01.home/01._hero" => array:1 [
          "slug" => "_hero"
        ]
        "/home/erq/retraite.erq.qc.ca/user/pages/01.home/12._contact" => array:1 [
          "slug" => "_contact"
        ]
        "/home/erq/retraite.erq.qc.ca/user/pages/01.home/07._lieu" => array:1 [
          "slug" => "_lieu"
        ]
        "/home/erq/retraite.erq.qc.ca/user/pages/01.home/04._theme" => array:1 [
          "slug" => "_theme"
        ]
        "/home/erq/retraite.erq.qc.ca/user/pages/01.home/08._hebergement" => array:1 [
          "slug" => "_hebergement"
        ]
        "/home/erq/retraite.erq.qc.ca/user/pages/01.home/06._horaire" => array:1 [
          "slug" => "_horaire"
        ]
        "/home/erq/retraite.erq.qc.ca/user/pages/01.home/15._photos-2014" => array:1 [
          "slug" => "_photos-2014"
        ]
        "/home/erq/retraite.erq.qc.ca/user/pages/01.home/02._bienvenue" => array:1 [
          "slug" => "_bienvenue"
        ]
      ]
      "order_by" => "default"
      "manual" => []
      "sort_flags" => null
      "list" => []
      "header_default" => null
      "header_query" => null
      "info" => array:1 [
        "slug" => "_conferencier"
      ]
      "key" => "/home/erq/retraite.erq.qc.ca/user/pages/01.home/06._conferencier"
      "child" => Page {}
    ]
    
/
home
/
erq
/
retraite.erq.qc.ca
/
system
/
src
/
Grav
/
Common
/
Page
/
Pages.php
     * @return array
     */
    public function sort(Page $page, $order_by = null, $order_dir = null, $sort_flags = null)
    {
        if ($order_by === null) {
            $order_by = $page->orderBy();
        }
        if ($order_dir === null) {
            $order_dir = $page->orderDir();
        }
 
        $path = $page->path();
        $children = isset($this->children[$path]) ? $this->children[$path] : [];
 
        if (!$children) {
            return $children;
        }
 
        if (!isset($this->sort[$path][$order_by])) {
            $this->buildSort($path, $children, $order_by, $page->orderManual(), $sort_flags);
        }
 
        $sort = $this->sort[$path][$order_by];
 
        if ($order_dir !== 'asc') {
            $sort = array_reverse($sort);
        }
 
        return $sort;
    }
 
    /**
     * @param Collection $collection
     * @param            $orderBy
     * @param string     $orderDir
     * @param null       $orderManual
     *
     * @return array
     * @internal
     */
Arguments
  1. "/home/erq/retraite.erq.qc.ca/user/pages/01.home"
    
  2. array:17 [
      "/home/erq/retraite.erq.qc.ca/user/pages/01.home/06._conferencier" => array:1 [
        "slug" => "_conferencier"
      ]
      "/home/erq/retraite.erq.qc.ca/user/pages/01.home/10._inscription" => array:1 [
        "slug" => "_inscription"
      ]
      "/home/erq/retraite.erq.qc.ca/user/pages/01.home/05._conference" => array:1 [
        "slug" => "_conference"
      ]
      "/home/erq/retraite.erq.qc.ca/user/pages/01.home/_photos-2018" => array:1 [
        "slug" => "_photos-2018"
      ]
      "/home/erq/retraite.erq.qc.ca/user/pages/01.home/03._30-ans" => array:1 [
        "slug" => "_30-ans"
      ]
      "/home/erq/retraite.erq.qc.ca/user/pages/01.home/09._tarifs" => array:1 [
        "slug" => "_tarifs"
      ]
      "/home/erq/retraite.erq.qc.ca/user/pages/01.home/14._photos-2013" => array:1 [
        "slug" => "_photos-2013"
      ]
      "/home/erq/retraite.erq.qc.ca/user/pages/01.home/11._QuoiApporter" => array:1 [
        "slug" => "_quoiapporter"
      ]
      "/home/erq/retraite.erq.qc.ca/user/pages/01.home/13._photos-2012" => array:1 [
        "slug" => "_photos-2012"
      ]
      "/home/erq/retraite.erq.qc.ca/user/pages/01.home/01._hero" => array:1 [
        "slug" => "_hero"
      ]
      "/home/erq/retraite.erq.qc.ca/user/pages/01.home/12._contact" => array:1 [
        "slug" => "_contact"
      ]
      "/home/erq/retraite.erq.qc.ca/user/pages/01.home/07._lieu" => array:1 [
        "slug" => "_lieu"
      ]
      "/home/erq/retraite.erq.qc.ca/user/pages/01.home/04._theme" => array:1 [
        "slug" => "_theme"
      ]
      "/home/erq/retraite.erq.qc.ca/user/pages/01.home/08._hebergement" => array:1 [
        "slug" => "_hebergement"
      ]
      "/home/erq/retraite.erq.qc.ca/user/pages/01.home/06._horaire" => array:1 [
        "slug" => "_horaire"
      ]
      "/home/erq/retraite.erq.qc.ca/user/pages/01.home/15._photos-2014" => array:1 [
        "slug" => "_photos-2014"
      ]
      "/home/erq/retraite.erq.qc.ca/user/pages/01.home/02._bienvenue" => array:1 [
        "slug" => "_bienvenue"
      ]
    ]
    
  3. "default"
    
  4. []
    
  5. null
    
/
home
/
erq
/
retraite.erq.qc.ca
/
system
/
src
/
Grav
/
Common
/
Page
/
Pages.php
            $page->routable(false);
        }
 
        // Override the modified time if modular
        if ($page->template() === 'modular') {
            foreach ($page->collection() as $child) {
                $modified = $child->modified();
 
                if ($modified > $last_modified) {
                    $last_modified = $modified;
                }
            }
        }
 
        // Override the modified and ID so that it takes the latest change into account
        $page->modified($last_modified);
        $page->id($last_modified . md5($page->filePath()));
 
        // Sort based on Defaults or Page Overridden sort order
        $this->children[$page->path()] = $this->sort($page);
 
        return $page;
    }
 
    /**
     * @internal
     */
    protected function buildRoutes()
    {
        /** @var $taxonomy Taxonomy */
        $taxonomy = $this->grav['taxonomy'];
 
        // Get the home route
        $home = self::resetHomeRoute();
 
        // Build routes and taxonomy map.
        /** @var $page Page */
        foreach ($this->instances as $page) {
            if (!$page->root()) {
                // process taxonomy
Arguments
  1. Page {}
    
/
home
/
erq
/
retraite.erq.qc.ca
/
system
/
src
/
Grav
/
Common
/
Page
/
Pages.php
                $this->grav->fireEvent('onPageProcessed', new Event(['page' => $page]));
            }
        }
 
        // Now handle all the folders under the page.
        /** @var \FilesystemIterator $file */
        foreach ($folders as $file) {
            $filename = $file->getFilename();
 
            // if folder contains separator, continue
            if (Utils::contains($file->getFilename(), $config->get('system.param_sep', ':'))) {
                continue;
            }
 
            if (!$page->path()) {
                $page->path($file->getPath());
            }
 
            $path = $directory . DS . $filename;
            $child = $this->recurse($path, $page);
 
            if (Utils::startsWith($filename, '_')) {
                $child->routable(false);
            }
 
            $this->children[$page->path()][$child->path()] = ['slug' => $child->slug()];
 
            if ($config->get('system.pages.events.page')) {
                $this->grav->fireEvent('onFolderProcessed', new Event(['page' => $page]));
            }
        }
 
        // Set routability to false if no page found
        if (!$content_exists) {
            $page->routable(false);
        }
 
        // Override the modified time if modular
        if ($page->template() === 'modular') {
            foreach ($page->collection() as $child) {
Arguments
  1. "/home/erq/retraite.erq.qc.ca/user/pages/01.home"
    
  2. Page {}
    
/
home
/
erq
/
retraite.erq.qc.ca
/
system
/
src
/
Grav
/
Common
/
Page
/
Pages.php
 
            } else {
                // If pages was found in cache, set the taxonomy
                $this->grav['debugger']->addMessage('Page cache hit.');
                $taxonomy->taxonomy($taxonomy_map);
            }
        } else {
            $this->recurse($pages_dir);
            $this->buildRoutes();
        }
    }
 
    /**
     * Accessible method to manually reset the pages cache
     *
     * @param $pages_dir
     */
    public function resetPages($pages_dir)
    {
        $this->recurse($pages_dir);
        $this->buildRoutes();
 
        // cache if needed
        if ($this->grav['config']->get('system.cache.enabled')) {
            /** @var Cache $cache */
            $cache = $this->grav['cache'];
            /** @var Taxonomy $taxonomy */
            $taxonomy = $this->grav['taxonomy'];
 
            // save pages, routes, taxonomy, and sort to cache
            $cache->save($this->pages_cache_id, [$this->instances, $this->routes, $this->children, $taxonomy->taxonomy(), $this->sort]);
        }
    }
 
    /**
     * Recursive function to load & build page relationships.
     *
     * @param string    $directory
     * @param Page|null $parent
     *
Arguments
  1. "/home/erq/retraite.erq.qc.ca/user/pages"
    
/
home
/
erq
/
retraite.erq.qc.ca
/
system
/
src
/
Grav
/
Common
/
Page
/
Pages.php
                    $hash = 0;
                    break;
                case 'folder':
                    $hash = Folder::lastModifiedFolder($pages_dir);
                    break;
                case 'hash':
                    $hash = Folder::hashAllFiles($pages_dir);
                    break;
                default:
                    $hash = Folder::lastModifiedFile($pages_dir);
            }
 
            $this->pages_cache_id = md5($pages_dir . $hash . $language->getActive() . $config->checksum());
 
            list($this->instances, $this->routes, $this->children, $taxonomy_map, $this->sort) = $cache->fetch($this->pages_cache_id);
            if (!$this->instances) {
                $this->grav['debugger']->addMessage('Page cache missed, rebuilding pages..');
 
                // recurse pages and cache result
                $this->resetPages($pages_dir, $this->pages_cache_id);
 
            } else {
                // If pages was found in cache, set the taxonomy
                $this->grav['debugger']->addMessage('Page cache hit.');
                $taxonomy->taxonomy($taxonomy_map);
            }
        } else {
            $this->recurse($pages_dir);
            $this->buildRoutes();
        }
    }
 
    /**
     * Accessible method to manually reset the pages cache
     *
     * @param $pages_dir
     */
    public function resetPages($pages_dir)
    {
        $this->recurse($pages_dir);
Arguments
  1. "/home/erq/retraite.erq.qc.ca/user/pages"
    
  2. "b4be2acde5edaa54399033cccd093b02"
    
/
home
/
erq
/
retraite.erq.qc.ca
/
system
/
src
/
Grav
/
Common
/
Page
/
Pages.php
        }
 
        return $this->baseUrl($lang, $absolute) . Uri::filterPath($route);
    }
 
    /**
     * Class initialization. Must be called before using this class.
     */
    public function init()
    {
        $config = $this->grav['config'];
        $this->ignore_files = $config->get('system.pages.ignore_files');
        $this->ignore_folders = $config->get('system.pages.ignore_folders');
        $this->ignore_hidden = $config->get('system.pages.ignore_hidden');
 
        $this->instances = [];
        $this->children = [];
        $this->routes = [];
 
        $this->buildPages();
    }
 
    /**
     * Get or set last modification time.
     *
     * @param int $modified
     *
     * @return int|null
     */
    public function lastModified($modified = null)
    {
        if ($modified && $modified > $this->last_modified) {
            $this->last_modified = $modified;
        }
 
        return $this->last_modified;
    }
 
    /**
     * Returns a list of all pages.
/
home
/
erq
/
retraite.erq.qc.ca
/
system
/
src
/
Grav
/
Common
/
Processors
/
PagesProcessor.php
 * @copyright  Copyright (C) 2015 - 2018 Trilby Media, LLC. All rights reserved.
 * @license    MIT License; see LICENSE file for details.
 */
 
namespace Grav\Common\Processors;
 
use Grav\Common\Page\Page;
use RocketTheme\Toolbox\Event\Event;
 
class PagesProcessor extends ProcessorBase implements ProcessorInterface
{
    public $id = 'pages';
    public $title = 'Pages';
 
    public function process()
    {
        // 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 Page $page */
        $page = $this->container['page'];
 
        if (!$page->routable()) {
            // If no page found, fire event
            $event = $this->container->fireEvent('onPageNotFound', new Event(['page' => $page]));
 
            if (isset($event->page)) {
                unset ($this->container['page']);
                $this->container['page'] = $event->page;
            } else {
                throw new \RuntimeException('Page Not Found', 404);
            }
        }
 
    }
}
/
home
/
erq
/
retraite.erq.qc.ca
/
system
/
src
/
Grav
/
Common
/
Grav.php
        } elseif ($values) {
            $instance = self::$instance;
            foreach ($values as $key => $value) {
                $instance->offsetSet($key, $value);
            }
        }
 
        return self::$instance;
    }
 
    /**
     * Process a request
     */
    public function process()
    {
        // process all processors (e.g. config, initialize, assets, ..., render)
        foreach ($this->processors as $processor) {
            $processor = $this[$processor];
            $this->measureTime($processor->id, $processor->title, function () use ($processor) {
                $processor->process();
            });
        }
 
        /** @var Debugger $debugger */
        $debugger = $this['debugger'];
        $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')) {
/
home
/
erq
/
retraite.erq.qc.ca
/
system
/
src
/
Grav
/
Common
/
Grav.php
     *
     * @param  array $values
     *
     * @return static
     */
    protected static function load(array $values)
    {
        $container = new static($values);
 
        $container['grav'] = $container;
 
        $container['debugger'] = new Debugger();
        $debugger = $container['debugger'];
 
        // closure that measures time by wrapping a function into startTimer and stopTimer
        // The debugger can be passed to the closure. Should be more performant
        // then to get it from the container all time.
        $container->measureTime = function ($timerId, $timerTitle, $callback) use ($debugger) {
            $debugger->startTimer($timerId, $timerTitle);
            $callback();
            $debugger->stopTimer($timerId);
        };
 
        $container->measureTime('_services', 'Services', function () use ($container) {
            $container->registerServices($container);
        });
 
        return $container;
    }
 
    /**
     * Register all services
     * Services are defined in the diMap. They can either only the class
     * of a Service Provider or a pair of serviceKey => serviceClass that
     * gets directly mapped into the container.
     *
     * @return void
     */
    protected function registerServices()
    {
/
home
/
erq
/
retraite.erq.qc.ca
/
system
/
src
/
Grav
/
Common
/
Grav.php
 
                ob_end_flush();
                @ob_flush();
                flush();
            }
        }
 
        // Run any time consuming tasks.
        $this->fireEvent('onShutdown');
    }
 
    /**
     * Magic Catch All Function
     * Used to call closures like measureTime on the instance.
     * Source: http://stackoverflow.com/questions/419804/closures-as-class-members
     */
    public function __call($method, $args)
    {
        $closure = $this->$method;
        call_user_func_array($closure, $args);
    }
 
    /**
     * Initialize and return a Grav instance
     *
     * @param  array $values
     *
     * @return static
     */
    protected static function load(array $values)
    {
        $container = new static($values);
 
        $container['grav'] = $container;
 
        $container['debugger'] = new Debugger();
        $debugger = $container['debugger'];
 
        // closure that measures time by wrapping a function into startTimer and stopTimer
        // The debugger can be passed to the closure. Should be more performant
Arguments
  1. "pages"
    
  2. "Pages"
    
  3. Closure {
      class: "Grav\Common\Grav"
      this: Grav { …}
      use: {
        $processor: PagesProcessor {}
      }
      file: "/home/erq/retraite.erq.qc.ca/system/src/Grav/Common/Grav.php"
      line: "131 to 133"
    }
    
/
home
/
erq
/
retraite.erq.qc.ca
/
system
/
src
/
Grav
/
Common
/
Grav.php
 
                ob_end_flush();
                @ob_flush();
                flush();
            }
        }
 
        // Run any time consuming tasks.
        $this->fireEvent('onShutdown');
    }
 
    /**
     * Magic Catch All Function
     * Used to call closures like measureTime on the instance.
     * Source: http://stackoverflow.com/questions/419804/closures-as-class-members
     */
    public function __call($method, $args)
    {
        $closure = $this->$method;
        call_user_func_array($closure, $args);
    }
 
    /**
     * Initialize and return a Grav instance
     *
     * @param  array $values
     *
     * @return static
     */
    protected static function load(array $values)
    {
        $container = new static($values);
 
        $container['grav'] = $container;
 
        $container['debugger'] = new Debugger();
        $debugger = $container['debugger'];
 
        // closure that measures time by wrapping a function into startTimer and stopTimer
        // The debugger can be passed to the closure. Should be more performant
Arguments
  1. Closure {
      class: "Grav\Common\Grav"
      parameters: {
        $timerId: {}
        $timerTitle: {}
        $callback: {}
      }
      use: {
        $debugger: Debugger {}
      }
      file: "/home/erq/retraite.erq.qc.ca/system/src/Grav/Common/Grav.php"
      line: "372 to 376"
    }
    
  2. array:3 [
      0 => "pages"
      1 => "Pages"
      2 => Closure {
        class: "Grav\Common\Grav"
        this: Grav { …}
        use: {
          $processor: PagesProcessor {}
        }
        file: "/home/erq/retraite.erq.qc.ca/system/src/Grav/Common/Grav.php"
        line: "131 to 133"
      }
    ]
    
/
home
/
erq
/
retraite.erq.qc.ca
/
system
/
src
/
Grav
/
Common
/
Grav.php
            $instance = self::$instance;
            foreach ($values as $key => $value) {
                $instance->offsetSet($key, $value);
            }
        }
 
        return self::$instance;
    }
 
    /**
     * Process a request
     */
    public function process()
    {
        // process all processors (e.g. config, initialize, assets, ..., render)
        foreach ($this->processors as $processor) {
            $processor = $this[$processor];
            $this->measureTime($processor->id, $processor->title, function () use ($processor) {
                $processor->process();
            });
        }
 
        /** @var Debugger $debugger */
        $debugger = $this['debugger'];
        $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. "measureTime"
    
  2. array:3 [
      0 => "pages"
      1 => "Pages"
      2 => Closure {
        class: "Grav\Common\Grav"
        this: Grav { …}
        use: {
          $processor: PagesProcessor {}
        }
        file: "/home/erq/retraite.erq.qc.ca/system/src/Grav/Common/Grav.php"
        line: "131 to 133"
      }
    ]
    
/
home
/
erq
/
retraite.erq.qc.ca
/
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 (\Exception $e) {
    $grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
    throw $e;
}
 

Environment & details:

empty
empty
empty
empty
empty
Key Value
PATH
"/usr/local/bin:/usr/bin:/bin"
TEMP
"/tmp"
TMP
"/tmp"
TMPDIR
"/tmp"
PWD
"/"
HTTP_ACCEPT
"*/*"
CONTENT_LENGTH
"0"
HTTP_HOST
"retraite.erq.qc.ca"
HTTP_USER_AGENT
"claudebot"
UNIQUE_ID
"ZfksLNpGScyG9UKK2eMeTAAACsM"
SCRIPT_URL
"/"
SCRIPT_URI
"http://retraite.erq.qc.ca/"
SERVER_SIGNATURE
""
SERVER_SOFTWARE
"Apache"
SERVER_NAME
"retraite.erq.qc.ca"
SERVER_ADDR
"184.107.116.60"
SERVER_PORT
"80"
REMOTE_ADDR
"44.206.248.122"
DOCUMENT_ROOT
"/home/erq/retraite.erq.qc.ca"
REQUEST_SCHEME
"http"
CONTEXT_PREFIX
""
CONTEXT_DOCUMENT_ROOT
"/home/erq/retraite.erq.qc.ca"
SERVER_ADMIN
"webmaster@retraite.erq.qc.ca"
SCRIPT_FILENAME
"/home/erq/retraite.erq.qc.ca/index.php"
REMOTE_PORT
"42844"
SERVER_PROTOCOL
"HTTP/1.1"
REQUEST_METHOD
"GET"
QUERY_STRING
""
REQUEST_URI
"/"
SCRIPT_NAME
"/index.php"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1710828588.5484
REQUEST_TIME
1710828588
argv
[]
argc
0
Key Value
PATH
"/usr/local/bin:/usr/bin:/bin"
TEMP
"/tmp"
TMP
"/tmp"
TMPDIR
"/tmp"
PWD
"/"
0. Whoops\Handler\PrettyPageHandler
1. Whoops\Handler\CallbackHandler