RuntimeException (500)
Failed to read /home/jeremygrav/jeremycherfas.net/user/pages/03.blog/balance-we-dont-need-no-stinkin-balance/item.md: Unexpected characters near " balance'" at line 1 (near "title: 'Balance? We don’t need no stinkin' balance'").
Previous exceptions
  • Unexpected characters near " balance'" at line 1 (near "title: 'Balance? We don’t need no stinkin' balance'"). (0)
RuntimeException thrown with message "Failed to read /home/jeremygrav/jeremycherfas.net/user/pages/03.blog/balance-we-dont-need-no-stinkin-balance/item.md: Unexpected characters near " balance'" at line 1 (near "title: 'Balance? We don’t need no stinkin' balance'")." Stacktrace: #53 RuntimeException in /home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/File/src/AbstractFile.php:310 #52 RocketTheme\Toolbox\Compat\Yaml\Exception\ParseException in /home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/Compat/src/Yaml/Inline.php:75 #51 RocketTheme\Toolbox\Compat\Yaml\Inline:parse in /home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/Compat/src/Yaml/Parser.php:536 #50 RocketTheme\Toolbox\Compat\Yaml\Parser:parseValue in /home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/Compat/src/Yaml/Parser.php:258 #49 RocketTheme\Toolbox\Compat\Yaml\Parser:doParse in /home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/Compat/src/Yaml/Parser.php:78 #48 RocketTheme\Toolbox\Compat\Yaml\Parser:parse in /home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/Compat/src/Yaml/Yaml.php:65 #47 RocketTheme\Toolbox\Compat\Yaml\Yaml:parse in /home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/File/src/MarkdownFile.php:178 #46 RocketTheme\Toolbox\File\MarkdownFile:decode in /home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/File/src/AbstractFile.php:308 #45 RocketTheme\Toolbox\File\AbstractFile:content in /home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/File/src/File.php:26 #44 RocketTheme\Toolbox\File\File:content in /home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/File/src/MarkdownFile.php:33 #43 RocketTheme\Toolbox\File\MarkdownFile:content in /home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/File/src/MarkdownFile.php:46 #42 RocketTheme\Toolbox\File\MarkdownFile:header in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Page/Page.php:401 #41 Grav\Common\Page\Page:header in /home/jeremygrav/jeremycherfas.net/user/plugins/comments/comments.php:52 #40 Grav\Plugin\CommentsPlugin:onPageInitialized in /home/jeremygrav/jeremycherfas.net/vendor/symfony/event-dispatcher/EventDispatcher.php:264 #39 Symfony\Component\EventDispatcher\EventDispatcher:doDispatch in /home/jeremygrav/jeremycherfas.net/vendor/symfony/event-dispatcher/EventDispatcher.php:239 #38 Symfony\Component\EventDispatcher\EventDispatcher:callListeners in /home/jeremygrav/jeremycherfas.net/vendor/symfony/event-dispatcher/EventDispatcher.php:73 #37 Symfony\Component\EventDispatcher\EventDispatcher:dispatch in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Grav.php:597 #36 Grav\Common\Grav:fireEvent in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/PagesProcessor.php:60 #35 Grav\Common\Processors\PagesProcessor:process in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50 #34 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62 #33 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/TwigProcessor.php:38 #32 Grav\Common\Processors\TwigProcessor:process in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50 #31 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62 #30 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/AssetsProcessor.php:39 #29 Grav\Common\Processors\AssetsProcessor:process in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50 #28 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62 #27 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/SchedulerProcessor.php:40 #26 Grav\Common\Processors\SchedulerProcessor:process in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50 #25 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62 #24 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/BackupsProcessor.php:39 #23 Grav\Common\Processors\BackupsProcessor:process in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50 #22 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62 #21 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/TasksProcessor.php:69 #20 Grav\Common\Processors\TasksProcessor:process in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50 #19 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62 #18 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/RequestProcessor.php:64 #17 Grav\Common\Processors\RequestProcessor:process in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50 #16 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62 #15 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/ThemesProcessor.php:38 #14 Grav\Common\Processors\ThemesProcessor:process in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50 #13 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62 #12 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/PluginsProcessor.php:39 #11 Grav\Common\Processors\PluginsProcessor:process in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50 #10 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62 #9 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/InitializeProcessor.php:130 #8 Grav\Common\Processors\InitializeProcessor:Grav\Common\Processors\{closure} in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Debugger.php:546 #7 Grav\Common\Debugger:profile in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/InitializeProcessor.php:131 #6 Grav\Common\Processors\InitializeProcessor:process in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50 #5 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62 #4 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Middlewares/MultipartRequestSupport.php:40 #3 Grav\Framework\RequestHandler\Middlewares\MultipartRequestSupport:process in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50 #2 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62 #1 Grav\Framework\RequestHandler\RequestHandler:handle in /home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Grav.php:312 #0 Grav\Common\Grav:process in /home/jeremygrav/jeremycherfas.net/index.php:47
Stack frames (54)
53
RuntimeException
/vendor/rockettheme/toolbox/File/src/AbstractFile.php310
52
RocketTheme\Toolbox\Compat\Yaml\Exception\ParseException
/vendor/rockettheme/toolbox/Compat/src/Yaml/Inline.php75
51
RocketTheme\Toolbox\Compat\Yaml\Inline parse
/vendor/rockettheme/toolbox/Compat/src/Yaml/Parser.php536
50
RocketTheme\Toolbox\Compat\Yaml\Parser parseValue
/vendor/rockettheme/toolbox/Compat/src/Yaml/Parser.php258
49
RocketTheme\Toolbox\Compat\Yaml\Parser doParse
/vendor/rockettheme/toolbox/Compat/src/Yaml/Parser.php78
48
RocketTheme\Toolbox\Compat\Yaml\Parser parse
/vendor/rockettheme/toolbox/Compat/src/Yaml/Yaml.php65
47
RocketTheme\Toolbox\Compat\Yaml\Yaml parse
/vendor/rockettheme/toolbox/File/src/MarkdownFile.php178
46
RocketTheme\Toolbox\File\MarkdownFile decode
/vendor/rockettheme/toolbox/File/src/AbstractFile.php308
45
RocketTheme\Toolbox\File\AbstractFile content
/vendor/rockettheme/toolbox/File/src/File.php26
44
RocketTheme\Toolbox\File\File content
/vendor/rockettheme/toolbox/File/src/MarkdownFile.php33
43
RocketTheme\Toolbox\File\MarkdownFile content
/vendor/rockettheme/toolbox/File/src/MarkdownFile.php46
42
RocketTheme\Toolbox\File\MarkdownFile header
/system/src/Grav/Common/Page/Page.php401
41
Grav\Common\Page\Page header
/user/plugins/comments/comments.php52
40
Grav\Plugin\CommentsPlugin onPageInitialized
/vendor/symfony/event-dispatcher/EventDispatcher.php264
39
Symfony\Component\EventDispatcher\EventDispatcher doDispatch
/vendor/symfony/event-dispatcher/EventDispatcher.php239
38
Symfony\Component\EventDispatcher\EventDispatcher callListeners
/vendor/symfony/event-dispatcher/EventDispatcher.php73
37
Symfony\Component\EventDispatcher\EventDispatcher dispatch
/system/src/Grav/Common/Grav.php597
36
Grav\Common\Grav fireEvent
/system/src/Grav/Common/Processors/PagesProcessor.php60
35
Grav\Common\Processors\PagesProcessor process
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php50
34
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php62
33
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Common/Processors/TwigProcessor.php38
32
Grav\Common\Processors\TwigProcessor process
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php50
31
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php62
30
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Common/Processors/AssetsProcessor.php39
29
Grav\Common\Processors\AssetsProcessor process
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php50
28
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php62
27
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Common/Processors/SchedulerProcessor.php40
26
Grav\Common\Processors\SchedulerProcessor process
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php50
25
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php62
24
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Common/Processors/BackupsProcessor.php39
23
Grav\Common\Processors\BackupsProcessor process
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php50
22
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php62
21
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Common/Processors/TasksProcessor.php69
20
Grav\Common\Processors\TasksProcessor process
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php50
19
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php62
18
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Common/Processors/RequestProcessor.php64
17
Grav\Common\Processors\RequestProcessor process
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php50
16
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php62
15
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Common/Processors/ThemesProcessor.php38
14
Grav\Common\Processors\ThemesProcessor process
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php50
13
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php62
12
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Common/Processors/PluginsProcessor.php39
11
Grav\Common\Processors\PluginsProcessor process
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php50
10
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php62
9
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Common/Processors/InitializeProcessor.php130
8
Grav\Common\Processors\InitializeProcessor Grav\Common\Processors\{closure}
/system/src/Grav/Common/Debugger.php546
7
Grav\Common\Debugger profile
/system/src/Grav/Common/Processors/InitializeProcessor.php131
6
Grav\Common\Processors\InitializeProcessor process
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php50
5
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php62
4
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Middlewares/MultipartRequestSupport.php40
3
Grav\Framework\RequestHandler\Middlewares\MultipartRequestSupport process
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php50
2
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php62
1
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Common/Grav.php312
0
Grav\Common\Grav process
/index.php47
/home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/File/src/AbstractFile.php
     * Get/set parsed file contents.
     *
     * @param string|array|null $var
     * @return string|array
     * @throws RuntimeException
     */
    public function content($var = null)
    {
        if ($var !== null) {
            $this->content = $this->check($var);
 
            // Update RAW, too.
            $this->raw = $this->encode($this->content);
 
        } elseif ($this->content === null) {
            // Decode RAW file.
            try {
                $this->content = $this->decode($this->raw());
            } catch (Exception $e) {
                throw new RuntimeException(sprintf('Failed to read %s: %s', $this->filename, $e->getMessage()), 500, $e);
            }
        }
 
        return $this->content;
    }
 
    /**
     * Save file.
     *
     * @param  mixed  $data  Optional data to be saved, usually array.
     * @return void
     * @throws RuntimeException
     */
    public function save($data = null)
    {
        if (null === $this->filename) {
            throw new RuntimeException('Failed to save file: no filename');
        }
 
        if ($data !== null) {
Arguments
  1. "Failed to read /home/jeremygrav/jeremycherfas.net/user/pages/03.blog/balance-we-dont-need-no-stinkin-balance/item.md: Unexpected characters near " balance'" at line 1 (near "title: 'Balance? We don’t need no stinkin' balance'")."
    
/home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/Compat/src/Yaml/Inline.php
            mb_internal_encoding('ASCII');
        }
 
        $i = 0;
        switch ($value[0]) {
            case '[':
                $result = self::parseSequence($value, $i, $references);
                ++$i;
                break;
            case '{':
                $result = self::parseMapping($value, $i, $references);
                ++$i;
                break;
            default:
                $result = self::parseScalar($value, null, array('"', "'"), $i, true, $references);
        }
 
        // some comments are allowed at the end
        if (preg_replace('/\s+#.*$/A', '', substr($value, $i))) {
            throw new ParseException(sprintf('Unexpected characters near "%s".', substr($value, $i)));
        }
 
        if (isset($mbEncoding)) {
            mb_internal_encoding($mbEncoding);
        }
 
        return $result;
    }
 
    /**
     * Check if given array is hash or just normal indexed array.
     *
     * @internal
     *
     * @param array $value The PHP array to check
     *
     * @return bool true if value is hash array, false otherwise
     */
    public static function isHash(array $value)
    {
Arguments
  1. "Unexpected characters near " balance'" at line 1 (near "title: 'Balance? We don’t need no stinkin' balance'")."
    
Exception message: Unexpected characters near " balance'" at line 1 (near "title: 'Balance? We don’t need no stinkin' balance'").
/home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/Compat/src/Yaml/Parser.php
                $value = substr($value, 1, $pos - 2);
            } else {
                $value = substr($value, 1);
            }
 
            if (!array_key_exists($value, $this->refs)) {
                throw new ParseException(sprintf('Reference "%s" does not exist.', $value), $this->currentLineNb + 1, $this->currentLine);
            }
 
            return $this->refs[$value];
        }
 
        if (self::preg_match('/^'.self::BLOCK_SCALAR_HEADER_PATTERN.'$/', $value, $matches)) {
            $modifiers = isset($matches['modifiers']) ? $matches['modifiers'] : '';
 
            return $this->parseBlockScalar($matches['separator'], preg_replace('#\d+#', '', $modifiers), abs((int) $modifiers));
        }
 
        try {
            $parsedValue = Inline::parse($value, $exceptionOnInvalidType, $objectSupport, $objectForMap, $this->refs);
 
            if ('mapping' === $context && '"' !== $value[0] && "'" !== $value[0] && '[' !== $value[0] && '{' !== $value[0] && '!' !== $value[0] && false !== strpos($parsedValue, ': ')) {
                @trigger_error(sprintf('Using a colon in the unquoted mapping value "%s" in line %d is deprecated since Symfony 2.8 and will throw a ParseException in 3.0.', $value, $this->getRealCurrentLineNb() + 1), E_USER_DEPRECATED);
 
                // to be thrown in 3.0
                // throw new ParseException('A colon cannot be used in an unquoted mapping value.');
            }
 
            return $parsedValue;
        } catch (ParseException $e) {
            $e->setParsedLine($this->getRealCurrentLineNb() + 1);
            $e->setSnippet($this->currentLine);
 
            throw $e;
        }
    }
 
    /**
     * Parses a block scalar.
     *
Arguments
  1. "'Balance? We don’t need no stinkin' balance'"
    
  2. false
    
  3. false
    
  4. false
    
  5. []
    
/home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/Compat/src/Yaml/Parser.php
                    if (!$this->isNextLineIndented() && !$this->isNextLineUnIndentedCollection()) {
                        // Spec: Keys MUST be unique; first one wins.
                        // But overwriting is allowed when a merge node is used in current block.
                        if ($allowOverwrite || !isset($data[$key])) {
                            $data[$key] = null;
                        }
                    } else {
                        $value = $this->parseBlock($this->getRealCurrentLineNb() + 1, $this->getNextEmbedBlock(), $exceptionOnInvalidType, $objectSupport, $objectForMap);
 
                        if ('<<' === $key) {
                            $this->refs[$refMatches['ref']] = $value;
                            $data += $value;
                        } elseif ($allowOverwrite || !isset($data[$key])) {
                            // Spec: Keys MUST be unique; first one wins.
                            // But overwriting is allowed when a merge node is used in current block.
                            $data[$key] = $value;
                        }
                    }
                } else {
                    $value = $this->parseValue($values['value'], $exceptionOnInvalidType, $objectSupport, $objectForMap, $context);
                    // Spec: Keys MUST be unique; first one wins.
                    // But overwriting is allowed when a merge node is used in current block.
                    if ($allowOverwrite || !isset($data[$key])) {
                        $data[$key] = $value;
                    }
                }
                if ($isRef) {
                    $this->refs[$isRef] = $data[$key];
                }
            } else {
                // multiple documents are not supported
                if ('---' === $this->currentLine) {
                    throw new ParseException('Multiple documents are not supported.', $this->currentLineNb + 1, $this->currentLine);
                }
 
                // 1-liner optionally followed by newline(s)
                if (is_string($value) && $this->lines[0] === trim($value)) {
                    try {
                        $value = Inline::parse($this->lines[0], $exceptionOnInvalidType, $objectSupport, $objectForMap, $this->refs);
                    } catch (ParseException $e) {
Arguments
  1. "'Balance? We don’t need no stinkin' balance'"
    
  2. false
    
  3. false
    
  4. false
    
  5. "mapping"
    
/home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/Compat/src/Yaml/Parser.php
     */
    public function parse($value, $exceptionOnInvalidType = false, $objectSupport = false, $objectForMap = false)
    {
        if (false === preg_match('//u', $value)) {
            throw new ParseException('The YAML value does not appear to be valid UTF-8.');
        }
 
        $this->refs = array();
 
        $mbEncoding = null;
        $e = null;
        $data = null;
 
        if (2 /* MB_OVERLOAD_STRING */ & (int) ini_get('mbstring.func_overload')) {
            $mbEncoding = mb_internal_encoding();
            mb_internal_encoding('UTF-8');
        }
 
        try {
            $data = $this->doParse($value, $exceptionOnInvalidType, $objectSupport, $objectForMap);
        } catch (\Exception $e) {
        } catch (\Throwable $e) {
        }
 
        if (null !== $mbEncoding) {
            mb_internal_encoding($mbEncoding);
        }
 
        $this->lines = array();
        $this->currentLine = '';
        $this->refs = array();
        $this->skippedLineNumbers = array();
        $this->locallySkippedLineNumbers = array();
 
        if (null !== $e) {
            throw $e;
        }
 
        return $data;
    }
Arguments
  1. """
    title: 'Balance? We don’t need no stinkin' balance'\n
    published: true\n
    date: '13-07-2006 06:49'\n
    taxonomy:\n
        category:\n
            - blog\n
        tag:\n
            - General\n
    summary:\n
        enabled: '1'\n
    subhead: " "\n
    header_image: '0'
    """
    
  2. false
    
  3. false
    
  4. false
    
/home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/Compat/src/Yaml/Yaml.php
     */
    public static function parse($input, $exceptionOnInvalidType = false, $objectSupport = false, $objectForMap = false)
    {
        // if input is a file, process it
        $file = '';
        if (false === strpos($input, "\n") && is_file($input)) {
            @trigger_error('The ability to pass file names to the '.__METHOD__.' method is deprecated since version 2.2 and will be removed in 3.0. Pass the YAML contents of the file instead.', E_USER_DEPRECATED);
 
            if (false === is_readable($input)) {
                throw new ParseException(sprintf('Unable to parse "%s" as the file is not readable.', $input));
            }
 
            $file = $input;
            $input = file_get_contents($file);
        }
 
        $yaml = new Parser();
 
        try {
            return $yaml->parse($input, $exceptionOnInvalidType, $objectSupport, $objectForMap);
        } catch (ParseException $e) {
            if ($file) {
                $e->setParsedFile($file);
            }
 
            throw $e;
        }
    }
}
 
Arguments
  1. """
    title: 'Balance? We don’t need no stinkin' balance'\n
    published: true\n
    date: '13-07-2006 06:49'\n
    taxonomy:\n
        category:\n
            - blog\n
        tag:\n
            - General\n
    summary:\n
        enabled: '1'\n
    subhead: " "\n
    header_image: '0'
    """
    
  2. false
    
  3. false
    
  4. false
    
/home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/File/src/MarkdownFile.php
            // Try native PECL YAML PHP extension first if available.
            if (\function_exists('yaml_parse') && $this->setting('native')) {
                // Safely decode YAML.
                $saved = @ini_get('yaml.decode_php');
                @ini_set('yaml.decode_php', '0');
                $content['header'] = @yaml_parse("---\n" . $frontmatter . "\n...");
                if ($saved !== false) {
                    @ini_set('yaml.decode_php', $saved);
                }
            }
 
            if ($content['header'] === false) {
                // YAML hasn't been parsed yet (error or extension isn't available). Fall back to Symfony parser.
                try {
                    $content['header'] = (array) YamlParser::parse($frontmatter);
                } catch (ParseException $e) {
                    if (!$this->setting('compat', true)) {
                        throw $e;
                    }
                    $content['header'] = (array) FallbackYamlParser::parse($frontmatter);
                }
            }
            $content['markdown'] = $m[2];
        } else {
            $content['header'] = [];
            $content['markdown'] = $var;
        }
 
        return $content;
    }
}
 
Arguments
  1. """
    title: 'Balance? We don’t need no stinkin' balance'\n
    published: true\n
    date: '13-07-2006 06:49'\n
    taxonomy:\n
        category:\n
            - blog\n
        tag:\n
            - General\n
    summary:\n
        enabled: '1'\n
    subhead: " "\n
    header_image: '0'
    """
    
/home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/File/src/AbstractFile.php
 
    /**
     * Get/set parsed file contents.
     *
     * @param string|array|null $var
     * @return string|array
     * @throws RuntimeException
     */
    public function content($var = null)
    {
        if ($var !== null) {
            $this->content = $this->check($var);
 
            // Update RAW, too.
            $this->raw = $this->encode($this->content);
 
        } elseif ($this->content === null) {
            // Decode RAW file.
            try {
                $this->content = $this->decode($this->raw());
            } catch (Exception $e) {
                throw new RuntimeException(sprintf('Failed to read %s: %s', $this->filename, $e->getMessage()), 500, $e);
            }
        }
 
        return $this->content;
    }
 
    /**
     * Save file.
     *
     * @param  mixed  $data  Optional data to be saved, usually array.
     * @return void
     * @throws RuntimeException
     */
    public function save($data = null)
    {
        if (null === $this->filename) {
            throw new RuntimeException('Failed to save file: no filename');
        }
Arguments
  1. """
    ---\n
    title: 'Balance? We don’t need no stinkin' balance'\n
    published: true\n
    date: '13-07-2006 06:49'\n
    taxonomy:\n
        category:\n
            - blog\n
        tag:\n
            - General\n
    summary:\n
        enabled: '1'\n
    subhead: " "\n
    header_image: '0'\n
    ---\n
    \n
    My [recent post](https://jeremycherfas.net/blog/take-precautions-global-warming-deserves-it/) about Jim Hansen’s [article on climate change](http://www.nybooks.com/articles/19131) in the New York Review of Books was not the piece I set out to write. I had intended to focus on this part of his article:\n
    \n
    > I used to spread the blame uniformly until, when I was about to appear on public television, the producer informed me that the program “must” also include a “contrarian” who would take issue with claims of global warming. Presenting such a view, he told me, was a common practice in commercial television as well as radio and newspapers. Supporters of public TV or advertisers, with their own special interests, require “balance” as a price for their continued financial support.\n
    \n
    Hansen points out that “the public is understandably confused or uninterested”. And he skewers one reason: editorial control.\n
    \n
    I grew up in a country where it remains a badge of honour to admit that one “can’t do sums for toffee”. Where such people, who really have a very tenuous grasp on reality, like the cute one-letter difference between a million and a billion, are indeed running the country. Where ignorance is bliss.\n
    \n
    Politicians, of course, will always be subject to special interests. But editors? I know very few in mainstream print or broadcast who have even the slightest knowledge of what science is or how it works. The science writers and journalists, in their ghetto, do. Or did. But to get out of the ghetto the specialists have to persuade someone who lacks the ability to make a sound decision, even a wrong one. And who therefor falls back on “balance”.\n
    \n
    Get a contrary view. Give it equal weight. Let the people decide.\n
    \n
    Bollocks.\n
    \n
    The people don’t want to decide. That’s why they elect self-serving politicians and that’s why they read celebrity pablum. They like to watch a good pissing match. They see two talking heads, annointed by The Media, and they figure, “well, this is queer alright, they can’t seem to agree, I’ll just ignore it.”\n
    \n
    I’m not banging a drum for conformism, far from it. I like a good scientific argy-bargy as much as the next person. But if one side is represented by a lunatic on a soap-box, that’s an unfair fight, handicapping possible truth with certain nonsense. There is a solution, one that involves self-denial and sacrifice.\n
    \n
    Just say no.\n
    \n
    Next time you are asked to engage with a fringe notion simply in order to cover a lame-brain editor’s arse, refuse. Of course the fringe notion will take this as proof of its correctness, and although it will have no impact on this delusion, you should explain your reasons, not necessarily on air or in print, but, say, on a blog.\n
    \n
    When I worked on a weekly science news magazine we had a regular chortle session over the nut letters, which our brief fortunately gave us a mandate to ignore. There was the green ink, a dead give away, and the random underlining, another certain symptom. And there was always the greatest justification ever, echoes of which I still hear today.\n
    \n
    They laughed at Galileo, and Galileo was right!\n
    They’re laughing at me.\n
    Therefor ...\n
    \n
    Seriously, next time you see a “debate” in The Media, stop for a moment and consider whether the two “sides” actually represent similarly weighted factions. The ferventness of one’s belief in something is not a measure of that thing’s veracity. If the IDiots were given time in proportion to their [ability to muster informed support](https://web.archive.org/web/20051013070909/http://shovelbums.org/component/option,com_mospetition/Itemid,506/), we would hear barely a peep from them.\n
    \n
    P.s. Spooky. After writing this, I received an email drawing my attention to an [article](https://web.archive.org/web/20060716003254/http://www.pasadenastarnews.com/search/ci_4039651) in the Pasadena Star News, reporting a debate among experts, including Jim Hansen, gathered to “discuss global warming's significance for humanity” in the context of a new programme on the Weather Channel. One of the participants, the science writer Andrew Revkin (of the NYT), reassured listeners that the effect could take centuries to materialize. Unfortunately the article does not say what, if anything, Jim Hansen said in response.\n
    """
    
/home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/File/src/File.php
/**
 * Implements Universal File Reader.
 *
 * @package RocketTheme\Toolbox\File
 * @author RocketTheme
 * @license MIT
 */
class File extends AbstractFile
{
    /**
     * Get/set parsed file contents.
     *
     * @param string|null $var
     * @return string
     * @throws RuntimeException
     */
    public function content($var = null)
    {
        /** @var string $content */
        $content = parent::content($var);
 
        return $content;
    }
}
 
Arguments
  1. null
    
/home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/File/src/MarkdownFile.php
 * @package RocketTheme\Toolbox\File
 * @author RocketTheme
 * @license MIT
 */
class MarkdownFile extends File
{
    /** @var string */
    protected $extension = '.md';
 
    /** @var static[] */
    static protected $instances = [];
 
    /**
     * @param array|null $var
     * @return array
     */
    public function content($var = null)
    {
        /** @var array $content */
        $content = parent::content($var);
 
        return $content;
    }
 
    /**
     * Get/set file header.
     *
     * @param array|null $var
     * @return array
     */
    public function header(array $var = null)
    {
        $content = $this->content();
 
        if ($var !== null) {
            $content['header'] = $var;
            $this->content($content);
        }
 
        return $content['header'];
Arguments
  1. null
    
/home/jeremygrav/jeremycherfas.net/vendor/rockettheme/toolbox/File/src/MarkdownFile.php
     * @param array|null $var
     * @return array
     */
    public function content($var = null)
    {
        /** @var array $content */
        $content = parent::content($var);
 
        return $content;
    }
 
    /**
     * Get/set file header.
     *
     * @param array|null $var
     * @return array
     */
    public function header(array $var = null)
    {
        $content = $this->content();
 
        if ($var !== null) {
            $content['header'] = $var;
            $this->content($content);
        }
 
        return $content['header'];
    }
 
    /**
     * Get/set markdown content.
     *
     * @param string|null $var
     * @return string
     */
    public function markdown($var = null)
    {
        $content = $this->content();
 
        if ($var !== null) {
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Page/Page.php
        }
 
        return $this->frontmatter;
    }
 
    /**
     * Gets and Sets the header based on the YAML configuration at the top of the .md file
     *
     * @param  object|array|null $var a YAML object representing the configuration for the file
     * @return \stdClass      the current YAML configuration
     */
    public function header($var = null)
    {
        if ($var) {
            $this->header = (object)$var;
 
            // Update also file object.
            $file = $this->file();
            if ($file) {
                $file->header((array)$var);
            }
 
            // Force content re-processing.
            $this->id(time() . md5($this->filePath()));
        }
        if (!$this->header) {
            $file = $this->file();
            if ($file) {
                try {
                    $this->raw_content = $file->markdown();
                    $this->frontmatter = $file->frontmatter();
                    $this->header = (object)$file->header();
 
                    if (!Utils::isAdminPlugin()) {
                        // If there's a `frontmatter.yaml` file merge that in with the page header
                        // note page's own frontmatter has precedence and will overwrite any defaults
                        $frontmatter_filename = $this->path . '/' . $this->folder . '/frontmatter.yaml';
                        if (file_exists($frontmatter_filename)) {
                            $frontmatter_file = CompiledYamlFile::instance($frontmatter_filename);
                            $frontmatter_data = $frontmatter_file->content();
Arguments
  1. array:2 [
      "title" => "balance-we-dont-need-no-stinkin-balance"
      "form" => array:4 [
        "name" => "comments"
        "fields" => array:9 [
          0 => array:6 [
            "name" => "name"
            "label" => "PLUGIN_COMMENTS.NAME_LABEL"
            "placeholder" => "PLUGIN_COMMENTS.NAME_PLACEHOLDER"
            "autocomplete" => "on"
            "type" => "text"
            "validate" => array:1 [
              "required" => true
            ]
          ]
          1 => array:5 [
            "name" => "email"
            "label" => "PLUGIN_COMMENTS.EMAIL_LABEL"
            "placeholder" => "PLUGIN_COMMENTS.EMAIL_PLACEHOLDER"
            "type" => "email"
            "validate" => array:1 [
              "required" => true
            ]
          ]
          2 => array:5 [
            "name" => "text"
            "label" => "PLUGIN_COMMENTS.MESSAGE_LABEL"
            "placeholder" => "PLUGIN_COMMENTS.MESSAGE_PLACEHOLDER"
            "type" => "textarea"
            "validate" => array:1 [
              "required" => true
            ]
          ]
          3 => array:3 [
            "name" => "date"
            "type" => "hidden"
            "process" => array:1 [
              "fillWithCurrentDateTime" => true
            ]
          ]
          4 => array:3 [
            "name" => "title"
            "type" => "hidden"
            "evaluateDefault" => "grav.page.header.title"
          ]
          5 => array:3 [
            "name" => "lang"
            "type" => "hidden"
            "evaluateDefault" => "grav.language.getLanguage"
          ]
          6 => array:3 [
            "name" => "path"
            "type" => "hidden"
            "evaluateDefault" => "grav.uri.path"
          ]
          7 => array:6 [
            "name" => "test"
            "type" => "radio"
            "label" => "What is eight times five?"
            "default" => "no"
            "options" => array:3 [
              "alaska" => 32
              "oklahoma" => 40
              "california" => 48
            ]
            "validate" => array:3 [
              "required" => true
              "pattern" => "^oklahoma$"
              "message" => "Not quite, try that math again."
            ]
          ]
          8 => array:2 [
            "name" => "honeypot"
            "type" => "honeypot"
          ]
        ]
        "buttons" => array:1 [
          0 => array:2 [
            "type" => "submit"
            "value" => "PLUGIN_COMMENTS.SUBMIT_COMMENT_BUTTON_TEXT"
          ]
        ]
        "process" => array:4 [
          0 => array:1 [
            "email" => array:2 [
              "subject" => "PLUGIN_COMMENTS.EMAIL_NEW_COMMENT_SUBJECT"
              "body" => "{% include 'forms/data.html.twig' %}"
            ]
          ]
          1 => array:1 [
            "addComment" => null
          ]
          2 => array:1 [
            "message" => "PLUGIN_COMMENTS.THANK_YOU_MESSAGE"
          ]
          3 => array:1 [
            "reset" => true
          ]
        ]
      ]
    ]
    
/home/jeremygrav/jeremycherfas.net/user/plugins/comments/comments.php
    /**
     * Initialize form if the page has one. Also catches form processing if user posts the form.
     *
     * Used by Form plugin < 2.0, kept for backwards compatibility
     *
     * @deprecated
     */
    public function onPageInitialized()
    {
        /** @var Page $page */
        $page = $this->grav['page'];
        if (!$page) {
            return;
        }
 
        if ($this->enable) {
            $header = $page->header();
            if (!isset($header->form)) {
                $header->form = $this->grav['config']->get('plugins.comments.form');
                $page->header($header);
            }
        }
    }
 
    /**
     * Add the comment form information to the page header dynamically
     *
     * Used by Form plugin >= 2.0
     */
    public function onFormPageHeaderProcessed(Event $event)
    {
        $header = $event['header'];
 
        if ($this->enable) {
            if (!isset($header->form)) {
                $header->form = $this->grav['config']->get('plugins.comments.form');
            }
        }
 
        $event->header = $header;
Arguments
  1. {#6283}
    
/home/jeremygrav/jeremycherfas.net/vendor/symfony/event-dispatcher/EventDispatcher.php
 
        foreach ($listeners as $listener) {
            if ($stoppable && $event->isPropagationStopped()) {
                break;
            }
            // @deprecated: the ternary operator is part of a BC layer and should be removed in 5.0
            $listener($listener instanceof WrappedListener ? new LegacyEventProxy($event) : $event, $eventName, $this);
        }
    }
 
    /**
     * @deprecated since Symfony 4.3, use callListeners() instead
     */
    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.
     */
    private function sortListeners(string $eventName)
    {
        krsort($this->listeners[$eventName]);
        $this->sorted[$eventName] = [];
 
        foreach ($this->listeners[$eventName] as &$listeners) {
            foreach ($listeners as $k => &$listener) {
                if (\is_array($listener) && isset($listener[0]) && $listener[0] instanceof \Closure && 2 >= \count($listener)) {
                    $listener[0] = $listener[0]();
                    $listener[1] = $listener[1] ?? '__invoke';
                }
                $this->sorted[$eventName][] = $listener;
            }
        }
Arguments
  1. RocketTheme\Toolbox\Event\Event {#8089}
    
  2. "onPageInitialized"
    
  3. Symfony\Component\EventDispatcher\EventDispatcher {#128
      -listeners: array:57 [
        "onPluginsInitialized" => array:7 [
          100002 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\ProblemsPlugin {#112}
              1 => "autoload"
            ]
          ]
          100001 => array:4 [
            0 => array:2 [
              0 => Grav\Plugin\BreadcrumbsPlugin {#97}
              1 => "autoload"
            ]
            1 => array:2 [
              0 => Grav\Plugin\MarkdownNoticesPlugin {#109}
              1 => "autoload"
            ]
            2 => array:2 [
              0 => Grav\Plugin\PaginationPlugin {#111}
              1 => "autoload"
            ]
            3 => array:2 [
              0 => Grav\Plugin\ProblemsPlugin {#112}
              1 => "onPluginsInitialized"
            ]
          ]
          100000 => array:4 [
            0 => array:2 [
              0 => Grav\Plugin\AdminPlugin {#95}
              1 => "setup"
            ]
            1 => array:2 [
              0 => Grav\Plugin\FeedPlugin {#102}
              1 => "autoload"
            ]
            2 => array:2 [
              0 => Grav\Plugin\SitemapPlugin {#114}
              1 => "autoload"
            ]
            3 => array:2 [
              0 => Grav\Plugin\TaxonomylistPlugin {#115}
              1 => "autoload"
            ]
          ]
          10000 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "initializeSession"
            ]
          ]
          1001 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\AdminPlugin {#95}
              1 => "onPluginsInitialized"
            ]
          ]
          1000 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "initializeLogin"
            ]
          ]
          0 => array:14 [
            0 => array:2 [
              0 => Grav\Plugin\BreadcrumbsPlugin {#97}
              1 => "onPluginsInitialized"
            ]
            1 => array:2 [
              0 => Grav\Plugin\CommentsPlugin {#98}
              1 => "onPluginsInitialized"
            ]
            2 => array:2 [
              0 => Grav\Plugin\EmailPlugin {#99}
              1 => "onPluginsInitialized"
            ]
            3 => array:2 [
              0 => Grav\Plugin\FeedPlugin {#102}
              1 => "onPluginsInitialized"
            ]
            4 => array:2 [
              0 => Grav\Plugin\FlexObjectsPlugin {#103}
              1 => "onPluginsInitialized"
            ]
            5 => array:2 [
              0 => Grav\Plugin\FormPlugin {#104}
              1 => "onPluginsInitialized"
            ]
            6 => array:2 [
              0 => Grav\Plugin\GanalyticsPlugin {#105}
              1 => "onPluginsInitialized"
            ]
            7 => array:2 [
              0 => Grav\Plugin\IndieauthPlugin {#107}
              1 => "onPluginsInitialized"
            ]
            8 => array:2 [
              0 => Grav\Plugin\PaginationPlugin {#111}
              1 => "onPluginsInitialized"
            ]
            9 => array:2 [
              0 => Grav\Plugin\SimplesearchPlugin {#113}
              1 => "onPluginsInitialized"
            ]
            10 => array:2 [
              0 => Grav\Plugin\SitemapPlugin {#114}
              1 => "onPluginsInitialized"
            ]
            11 => array:2 [
              0 => Grav\Plugin\TaxonomylistPlugin {#115}
              1 => "onPluginsInitialized"
            ]
            12 => array:2 [
              0 => Grav\Plugin\ThemerPlugin {#116}
              1 => "onPluginsInitialized"
            ]
            13 => array:2 [
              0 => Grav\Plugin\TwigFeedsPlugin {#117}
              1 => "onPluginsInitialized"
            ]
          ]
        ]
        "onRequestHandlerInit" => array:1 [
          100000 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\AdminPlugin {#95}
              1 => "onRequestHandlerInit"
            ]
          ]
        ]
        "onFormRegisterTypes" => array:1 [
          0 => array:2 [
            0 => array:2 [
              0 => Grav\Plugin\AdminPlugin {#95}
              1 => "onFormRegisterTypes"
            ]
            1 => array:2 [
              0 => Grav\Plugin\FlexObjectsPlugin {#103}
              1 => "onFormRegisterTypes"
            ]
          ]
        ]
        "onPageInitialized" => array:4 [
          10000 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\FlexObjectsPlugin {#103}
              1 => "authorizePage"
            ]
          ]
          1000 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\ThemerPlugin {#116}
              1 => "onPageInitialized"
            ]
          ]
          10 => array:2 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "authorizeLoginPage"
            ]
            1 => array:2 [
              0 => Grav\Plugin\CommentsPlugin {#98}
              1 => "onPageInitialized"
            ]
          ]
          0 => array:5 [
            0 => array:2 [
              0 => Grav\Plugin\AdminPlugin {#95}
              1 => "onPageInitialized"
            ]
            1 => array:2 [
              0 => Grav\Plugin\ImportPlugin {#106}
              1 => "onPageInitialized"
            ]
            2 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "authorizePage"
            ]
            3 => array:2 [
              0 => Grav\Plugin\FormPlugin {#104}
              1 => "onPageInitialized"
            ]
            4 => array:2 [
              0 => Grav\Plugin\PaginationPlugin {#111}
              1 => "onPageInitialized"
            ]
          ]
        ]
        "onShutdown" => array:1 [
          1000 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\AdminPlugin {#95}
              1 => "onShutdown"
            ]
          ]
        ]
        "Grav\Events\PermissionsRegisterEvent" => array:2 [
          1000 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\AdminPlugin {#95}
              1 => "onRegisterPermissions"
            ]
          ]
          100 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\FlexObjectsPlugin {#103}
              1 => "onRegisterPermissions"
            ]
          ]
        ]
        "onFormProcessed" => array:1 [
          0 => array:3 [
            0 => array:2 [
              0 => Grav\Plugin\EmailPlugin {#99}
              1 => "onFormProcessed"
            ]
            1 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "onFormProcessed"
            ]
            2 => array:2 [
              0 => Grav\Plugin\CommentsPlugin {#98}
              1 => "onFormProcessed"
            ]
          ]
        ]
        "onTwigTemplatePaths" => array:2 [
          0 => array:9 [
            0 => array:2 [
              0 => Grav\Plugin\EmailPlugin {#99}
              1 => "onTwigTemplatePaths"
            ]
            1 => array:2 [
              0 => Grav\Plugin\FormPlugin {#104}
              1 => "onTwigTemplatePaths"
            ]
            2 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "onTwigTemplatePaths"
            ]
            3 => array:2 [
              0 => Grav\Plugin\SimplesearchPlugin {#113}
              1 => "onTwigTemplatePaths"
            ]
            4 => array:2 [
              0 => Grav\Plugin\BreadcrumbsPlugin {#97}
              1 => "onTwigTemplatePaths"
            ]
            5 => array:2 [
              0 => Grav\Plugin\CommentsPlugin {#98}
              1 => "onTwigTemplatePaths"
            ]
            6 => array:2 [
              0 => Grav\Plugin\FlexObjectsPlugin {#103}
              1 => "onTwigTemplatePaths"
            ]
            7 => array:2 [
              0 => Grav\Plugin\PaginationPlugin {#111}
              1 => "onTwigTemplatePaths"
            ]
            8 => array:2 [
              0 => Grav\Plugin\TaxonomylistPlugin {#115}
              1 => "onTwigTemplatePaths"
            ]
          ]
          -10 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\ErrorPlugin {#100}
              1 => "onTwigTemplatePaths"
            ]
          ]
        ]
        "onSchedulerInitialized" => array:1 [
          0 => array:3 [
            0 => array:2 [
              0 => Grav\Plugin\EmailPlugin {#99}
              1 => "onSchedulerInitialized"
            ]
            1 => array:2 [
              0 => Grav\Common\Cache {#187}
              1 => "onSchedulerInitialized"
            ]
            2 => array:2 [
              0 => Grav\Common\Backup\Backups {#227}
              1 => "onSchedulerInitialized"
            ]
          ]
        ]
        "onAdminSave" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\EmailPlugin {#99}
              1 => "onAdminSave"
            ]
          ]
        ]
        "onCliInitialize" => array:2 [
          100000 => array:2 [
            0 => array:2 [
              0 => Grav\Plugin\ErrorPlugin {#100}
              1 => "autoload"
            ]
            1 => array:2 [
              0 => Grav\Plugin\FlexObjectsPlugin {#103}
              1 => "autoload"
            ]
          ]
          10 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\FlexObjectsPlugin {#103}
              1 => "initializeFlex"
            ]
          ]
        ]
        "onPageNotFound" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\ErrorPlugin {#100}
              1 => "onPageNotFound"
            ]
          ]
        ]
        "onGetPageTemplates" => array:1 [
          0 => array:3 [
            0 => array:2 [
              0 => Grav\Plugin\ErrorPlugin {#100}
              1 => "onGetPageTemplates"
            ]
            1 => array:2 [
              0 => Grav\Plugin\SimplesearchPlugin {#113}
              1 => "onGetPageTemplates"
            ]
            2 => array:2 [
              0 => Grav\Plugin\ThemerPlugin {#116}
              1 => "onGetPageTemplates"
            ]
          ]
        ]
        "onDisplayErrorPage.404" => array:1 [
          -1 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\ErrorPlugin {#100}
              1 => "onDisplayErrorPage404"
            ]
          ]
        ]
        "onTwigExtensions" => array:1 [
          0 => array:4 [
            0 => array:2 [
              0 => Grav\Plugin\ExamplePlugin {#101}
              1 => "onTwigExtensions"
            ]
            1 => array:2 [
              0 => Grav\Plugin\FormPlugin {#104}
              1 => "onTwigExtensions"
            ]
            2 => array:2 [
              0 => Grav\Plugin\MymapPlugin {#110}
              1 => "onTwigExtensions"
            ]
            3 => array:2 [
              0 => Grav\Plugin\PaginationPlugin {#111}
              1 => "onTwigExtensions"
            ]
          ]
        ]
        "onBlueprintCreated" => array:1 [
          0 => array:2 [
            0 => array:2 [
              0 => Grav\Plugin\FeedPlugin {#102}
              1 => "onBlueprintCreated"
            ]
            1 => array:2 [
              0 => Grav\Plugin\SitemapPlugin {#114}
              1 => "onBlueprintCreated"
            ]
          ]
        ]
        "onPageHeaders" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\FeedPlugin {#102}
              1 => "onPageHeaders"
            ]
          ]
        ]
        "Grav\Events\PluginsLoadedEvent" => array:1 [
          10 => array:2 [
            0 => array:2 [
              0 => Grav\Plugin\FlexObjectsPlugin {#103}
              1 => "initializeFlex"
            ]
            1 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "onPluginsLoaded"
            ]
          ]
        ]
        "Grav\Events\FlexRegisterEvent" => array:1 [
          100 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\FlexObjectsPlugin {#103}
              1 => "onRegisterFlex"
            ]
          ]
        ]
        "onAssetsInitialized" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\GanalyticsPlugin {#105}
              1 => "onAssetsInitialized"
            ]
          ]
        ]
        "Grav\Events\SessionStartEvent" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "onSessionStart"
            ]
          ]
        ]
        "Grav\Events\BeforeSessionStartEvent" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "onBeforeSessionStart"
            ]
          ]
        ]
        "Grav\Plugin\Login\Events\PageAuthorizeEvent" => array:1 [
          -10000 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "onPageAuthorizeEvent"
            ]
          ]
        ]
        "onTask.login.login" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "loginController"
            ]
          ]
        ]
        "onTask.login.twofa" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "loginController"
            ]
          ]
        ]
        "onTask.login.twofa_cancel" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "loginController"
            ]
          ]
        ]
        "onTask.login.forgot" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "loginController"
            ]
          ]
        ]
        "onTask.login.logout" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "loginController"
            ]
          ]
        ]
        "onTask.login.reset" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "loginController"
            ]
          ]
        ]
        "onTask.login.regenerate2FASecret" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "loginController"
            ]
          ]
        ]
        "onPageTask.login.invite" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "loginController"
            ]
          ]
        ]
        "onPagesInitialized" => array:2 [
          0 => array:4 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "storeReferrerPage"
            ]
            1 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "pageVisibility"
            ]
            2 => array:2 [
              0 => Grav\Plugin\FormPlugin {#104}
              1 => "onPagesInitialized"
            ]
            3 => array:2 [
              0 => Grav\Plugin\SimplesearchPlugin {#113}
              1 => "onPagesInitialized"
            ]
          ]
          -10000 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\FlexObjectsPlugin {#103}
              1 => "onPagesInitialized"
            ]
          ]
        ]
        "onDisplayErrorPage.401" => array:1 [
          -1 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "onDisplayErrorPage401"
            ]
          ]
        ]
        "onDisplayErrorPage.403" => array:1 [
          -1 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "onDisplayErrorPage403"
            ]
          ]
        ]
        "onPageFallBackUrl" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "authorizeFallBackUrl"
            ]
          ]
        ]
        "onTwigSiteVariables" => array:2 [
          -100000 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "onTwigSiteVariables"
            ]
          ]
          0 => array:7 [
            0 => array:2 [
              0 => Grav\Plugin\MarkdownNoticesPlugin {#109}
              1 => "onTwigSiteVariables"
            ]
            1 => array:2 [
              0 => Grav\Plugin\BreadcrumbsPlugin {#97}
              1 => "onTwigSiteVariables"
            ]
            2 => array:2 [
              0 => Grav\Plugin\CommentsPlugin {#98}
              1 => "onTwigSiteVariables"
            ]
            3 => array:2 [
              0 => Grav\Plugin\FormPlugin {#104}
              1 => "onTwigVariables"
            ]
            4 => array:2 [
              0 => Grav\Plugin\SimplesearchPlugin {#113}
              1 => "onTwigSiteVariables"
            ]
            5 => array:2 [
              0 => Grav\Plugin\TaxonomylistPlugin {#115}
              1 => "onTwigSiteVariables"
            ]
            6 => array:2 [
              0 => Grav\Plugin\TwigFeedsPlugin {#117}
              1 => "outputFeeds"
            ]
          ]
        ]
        "onUserLoginAuthenticate" => array:5 [
          10003 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "userLoginAuthenticateRateLimit"
            ]
          ]
          10002 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "userLoginAuthenticateByRegistration"
            ]
          ]
          10001 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "userLoginAuthenticateByRememberMe"
            ]
          ]
          10000 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "userLoginAuthenticateByEmail"
            ]
          ]
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "userLoginAuthenticate"
            ]
          ]
        ]
        "onUserLoginAuthorize" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "userLoginAuthorize"
            ]
          ]
        ]
        "onUserLoginFailure" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "userLoginGuest"
            ]
          ]
        ]
        "onUserLoginGuest" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "userLoginGuest"
            ]
          ]
        ]
        "onUserLogin" => array:2 [
          1000 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "userLoginResetRateLimit"
            ]
          ]
          10 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "userLogin"
            ]
          ]
        ]
        "onUserLogout" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\LoginPlugin {#108}
              1 => "userLogout"
            ]
          ]
        ]
        "onMarkdownInitialized" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\MarkdownNoticesPlugin {#109}
              1 => "onMarkdownInitialized"
            ]
          ]
        ]
        "onAdminGenerateReports" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\ProblemsPlugin {#112}
              1 => "onAdminGenerateReports"
            ]
          ]
        ]
        "onAdminCompilePresetSCSS" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\ProblemsPlugin {#112}
              1 => "onAdminCompilePresetSCSS"
            ]
          ]
        ]
        "onFatalException" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\ProblemsPlugin {#112}
              1 => "onFatalException"
            ]
          ]
        ]
        "onFormPageHeaderProcessed" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\CommentsPlugin {#98}
              1 => "onFormPageHeaderProcessed"
            ]
          ]
        ]
        "onBeforeFlexFormInitialize" => array:1 [
          -10 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\FlexObjectsPlugin {#103}
              1 => "onBeforeFlexFormInitialize"
            ]
          ]
        ]
        "onPageTask" => array:1 [
          -10 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\FlexObjectsPlugin {#103}
              1 => "onPageTask"
            ]
          ]
        ]
        "onPageProcessed" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\FormPlugin {#104}
              1 => "onPageProcessed"
            ]
          ]
        ]
        "onTwigInitialized" => array:1 [
          0 => array:2 [
            0 => array:2 [
              0 => Grav\Plugin\FormPlugin {#104}
              1 => "onTwigInitialized"
            ]
            1 => array:2 [
              0 => Grav\Theme\Tailwind {#207}
              1 => "onTwigInitialized"
            ]
          ]
        ]
        "onTwigPageVariables" => array:1 [
          0 => array:2 [
            0 => array:2 [
              0 => Grav\Plugin\FormPlugin {#104}
              1 => "onTwigVariables"
            ]
            1 => array:2 [
              0 => Grav\Plugin\TwigFeedsPlugin {#117}
              1 => "outputFeeds"
            ]
          ]
        ]
        "onFormValidationProcessed" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\FormPlugin {#104}
              1 => "onFormValidationProcessed"
            ]
          ]
        ]
        "onOutputGenerated" => array:1 [
          100 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\IndieauthPlugin {#107}
              1 => "advertiseEndpointLinks"
            ]
          ]
        ]
        "onBeforeCacheClear" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Plugin\TwigFeedsPlugin {#117}
              1 => "onBeforeCacheClear"
            ]
          ]
        ]
        "onThemeInitialized" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Theme\Tailwind {#207}
              1 => "onThemeInitialized"
            ]
          ]
        ]
        "onTwigLoader" => array:1 [
          0 => array:1 [
            0 => array:2 [
              0 => Grav\Theme\Tailwind {#207}
              1 => "onTwigLoader"
            ]
          ]
        ]
      ]
      -sorted: []
      -optimized: array:15 [
        "Grav\Events\PluginsLoadedEvent" => array:2 [
          0 => Grav\Plugin\FlexObjectsPlugin::initializeFlex(): void {#141 …4}
          1 => Grav\Plugin\LoginPlugin::onPluginsLoaded(): void {#148 …4}
        ]
        "Grav\Events\SessionStartEvent" => array:1 [
          0 => Grav\Plugin\LoginPlugin::onSessionStart(SessionStartEvent $event): void {#156 …4}
        ]
        "onPluginsInitialized" => array:26 [
          0 => Grav\Plugin\ProblemsPlugin::autoload(): ClassLoader {#160 …4}
          1 => Grav\Plugin\BreadcrumbsPlugin::autoload() {#161 …3}
          2 => Grav\Plugin\MarkdownNoticesPlugin::autoload() {#162 …3}
          3 => Grav\Plugin\PaginationPlugin::autoload() {#163 …3}
          4 => Grav\Plugin\ProblemsPlugin::onPluginsInitialized(): void {#164 …4}
          5 => Grav\Plugin\AdminPlugin::setup() {#165 …3}
          6 => Grav\Plugin\FeedPlugin::autoload() {#166 …3}
          7 => Grav\Plugin\SitemapPlugin::autoload(): ClassLoader {#167 …4}
          8 => Grav\Plugin\TaxonomylistPlugin::autoload(): ClassLoader {#168 …4}
          9 => Grav\Plugin\LoginPlugin::initializeSession(): void {#169 …4}
          10 => Grav\Plugin\AdminPlugin::onPluginsInitialized() {#170 …3}
          11 => Grav\Plugin\LoginPlugin::initializeLogin(): void {#171 …4}
          12 => Grav\Plugin\BreadcrumbsPlugin::onPluginsInitialized() {#172 …3}
          13 => Grav\Plugin\CommentsPlugin::onPluginsInitialized() {#173 …3}
          14 => Grav\Plugin\EmailPlugin::onPluginsInitialized() {#174 …3}
          15 => Grav\Plugin\FeedPlugin::onPluginsInitialized() {#175 …3}
          16 => Grav\Plugin\FlexObjectsPlugin::onPluginsInitialized(): void {#176 …4}
          17 => Grav\Plugin\FormPlugin::onPluginsInitialized(): void {#177 …4}
          18 => Grav\Plugin\GanalyticsPlugin::onPluginsInitialized() {#178 …3}
          19 => Grav\Plugin\IndieauthPlugin::onPluginsInitialized() {#179 …3}
          20 => Grav\Plugin\PaginationPlugin::onPluginsInitialized() {#180 …3}
          21 => Grav\Plugin\SimplesearchPlugin::onPluginsInitialized() {#181 …3}
          22 => Grav\Plugin\SitemapPlugin::onPluginsInitialized() {#182 …3}
          23 => Grav\Plugin\TaxonomylistPlugin::onPluginsInitialized() {#183 …3}
          24 => Grav\Plugin\ThemerPlugin::onPluginsInitialized() {#184 …3}
          25 => Grav\Plugin\TwigFeedsPlugin::onPluginsInitialized() {#185 …3}
        ]
        "onThemeInitialized" => array:1 [
          0 => Grav\Theme\Tailwind::onThemeInitialized() {#211 …3}
        ]
        "onRequestHandlerInit" => array:1 [
          0 => Grav\Plugin\AdminPlugin::onRequestHandlerInit(RequestHandlerEvent $event) {#217 …3}
        ]
        "onSchedulerInitialized" => array:3 [
          0 => Grav\Plugin\EmailPlugin::onSchedulerInitialized(Event $e) {#232 …3}
          1 => Grav\Common\Cache::onSchedulerInitialized(Event $event) {#233 …3}
          2 => Grav\Common\Backup\Backups::onSchedulerInitialized(Event $event) {#234 …3}
        ]
        "onAssetsInitialized" => array:1 [
          0 => Grav\Plugin\GanalyticsPlugin::onAssetsInitialized() {#265 …3}
        ]
        "onTwigTemplatePaths" => array:10 [
          0 => Grav\Plugin\EmailPlugin::onTwigTemplatePaths() {#270 …3}
          1 => Grav\Plugin\FormPlugin::onTwigTemplatePaths(): void {#271 …4}
          2 => Grav\Plugin\LoginPlugin::onTwigTemplatePaths(): void {#272 …4}
          3 => Grav\Plugin\SimplesearchPlugin::onTwigTemplatePaths() {#273 …3}
          4 => Grav\Plugin\BreadcrumbsPlugin::onTwigTemplatePaths() {#274 …3}
          5 => Grav\Plugin\CommentsPlugin::onTwigTemplatePaths() {#275 …3}
          6 => Grav\Plugin\FlexObjectsPlugin::onTwigTemplatePaths(): void {#276 …4}
          7 => Grav\Plugin\PaginationPlugin::onTwigTemplatePaths() {#277 …3}
          8 => Grav\Plugin\TaxonomylistPlugin::onTwigTemplatePaths() {#278 …3}
          9 => Grav\Plugin\ErrorPlugin::onTwigTemplatePaths(): void {#279 …4}
        ]
        "onTwigLoader" => array:1 [
          0 => Grav\Theme\Tailwind::onTwigLoader() {#281 …3}
        ]
        "onTwigInitialized" => array:2 [
          0 => Grav\Plugin\FormPlugin::onTwigInitialized(): void {#292 …4}
          1 => Grav\Theme\Tailwind::onTwigInitialized() {#293 …3}
        ]
        "onTwigExtensions" => array:4 [
          0 => Grav\Plugin\ExamplePlugin::onTwigExtensions() {#301 …3}
          1 => Grav\Plugin\FormPlugin::onTwigExtensions(): void {#302 …4}
          2 => Grav\Plugin\MymapPlugin::onTwigExtensions() {#303 …3}
          3 => Grav\Plugin\PaginationPlugin::onTwigExtensions() {#304 …3}
        ]
        "onPagesInitialized" => array:5 [
          0 => Grav\Plugin\LoginPlugin::storeReferrerPage(): void {#8090 …4}
          1 => Grav\Plugin\LoginPlugin::pageVisibility(Event $event): void {#8091 …4}
          2 => Grav\Plugin\FormPlugin::onPagesInitialized(): void {#8092 …4}
          3 => Grav\Plugin\SimplesearchPlugin::onPagesInitialized() {#8093 …3}
          4 => Grav\Plugin\FlexObjectsPlugin::onPagesInitialized(Event $event): void {#8094 …4}
        ]
        "Grav\Events\FlexRegisterEvent" => array:1 [
          0 => Grav\Plugin\FlexObjectsPlugin::onRegisterFlex(FlexRegisterEvent $event): void {#8098 …4}
        ]
        "onPageInitialized" => array:9 [
          0 => Grav\Plugin\FlexObjectsPlugin::authorizePage(Event $event): void {#8097 …4}
          1 => Grav\Plugin\ThemerPlugin::onPageInitialized() {#8102 …3}
          2 => Grav\Plugin\LoginPlugin::authorizeLoginPage(Event $event): void {#8103 …4}
          3 => Grav\Plugin\CommentsPlugin::onPageInitialized() {#8104 …3}
          4 => Grav\Plugin\AdminPlugin::onPageInitialized() {#8105 …3}
          5 => Grav\Plugin\ImportPlugin::onPageInitialized() {#8106 …3}
          6 => Grav\Plugin\LoginPlugin::authorizePage(): void {#8107 …4}
          7 => Grav\Plugin\FormPlugin::onPageInitialized(): void {#8108 …4}
          8 => Grav\Plugin\PaginationPlugin::onPageInitialized() {#8109 …3}
        ]
        "onFatalException" => array:1 [
          0 => Grav\Plugin\ProblemsPlugin::onFatalException(): void {#216 …4}
        ]
      ]
    }
    
/home/jeremygrav/jeremycherfas.net/vendor/symfony/event-dispatcher/EventDispatcher.php
            } else {
                $this->removeListener($eventName, [$subscriber, \is_string($params) ? $params : $params[0]]);
            }
        }
    }
 
    /**
     * 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 object     $event     The event object to pass to the event handlers/listeners
     */
    protected function callListeners(iterable $listeners, string $eventName, $event)
    {
        if ($event instanceof Event) {
            $this->doDispatch($listeners, $eventName, $event);
 
            return;
        }
 
        $stoppable = $event instanceof ContractsEvent || $event instanceof StoppableEventInterface;
 
        foreach ($listeners as $listener) {
            if ($stoppable && $event->isPropagationStopped()) {
                break;
            }
            // @deprecated: the ternary operator is part of a BC layer and should be removed in 5.0
            $listener($listener instanceof WrappedListener ? new LegacyEventProxy($event) : $event, $eventName, $this);
        }
    }
 
    /**
     * @deprecated since Symfony 4.3, use callListeners() instead
     */
    protected function doDispatch($listeners, $eventName, Event $event)
    {
Arguments
  1. array:9 [
      0 => Grav\Plugin\FlexObjectsPlugin::authorizePage(Event $event): void {#8097 …4}
      1 => Grav\Plugin\ThemerPlugin::onPageInitialized() {#8102 …3}
      2 => Grav\Plugin\LoginPlugin::authorizeLoginPage(Event $event): void {#8103 …4}
      3 => Grav\Plugin\CommentsPlugin::onPageInitialized() {#8104 …3}
      4 => Grav\Plugin\AdminPlugin::onPageInitialized() {#8105 …3}
      5 => Grav\Plugin\ImportPlugin::onPageInitialized() {#8106 …3}
      6 => Grav\Plugin\LoginPlugin::authorizePage(): void {#8107 …4}
      7 => Grav\Plugin\FormPlugin::onPageInitialized(): void {#8108 …4}
      8 => Grav\Plugin\PaginationPlugin::onPageInitialized() {#8109 …3}
    ]
    
  2. "onPageInitialized"
    
  3. RocketTheme\Toolbox\Event\Event {#8089}
    
/home/jeremygrav/jeremycherfas.net/vendor/symfony/event-dispatcher/EventDispatcher.php
 
        if (\is_object($event)) {
            $eventName = $eventName ?? \get_class($event);
        } elseif (\is_string($event) && (null === $eventName || $eventName instanceof ContractsEvent || $eventName instanceof Event)) {
            @trigger_error(sprintf('Calling the "%s::dispatch()" method with the event name as the first argument is deprecated since Symfony 4.3, pass it as the second argument and provide the event object as the first argument instead.', EventDispatcherInterface::class), \E_USER_DEPRECATED);
            $swap = $event;
            $event = $eventName ?? new Event();
            $eventName = $swap;
        } else {
            throw new \TypeError(sprintf('Argument 1 passed to "%s::dispatch()" must be an object, "%s" given.', EventDispatcherInterface::class, \is_object($event) ? \get_class($event) : \gettype($event)));
        }
 
        if (null !== $this->optimized && null !== $eventName) {
            $listeners = $this->optimized[$eventName] ?? (empty($this->listeners[$eventName]) ? [] : $this->optimizeListeners($eventName));
        } else {
            $listeners = $this->getListeners($eventName);
        }
 
        if ($listeners) {
            $this->callListeners($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:9 [
      0 => Grav\Plugin\FlexObjectsPlugin::authorizePage(Event $event): void {#8097 …4}
      1 => Grav\Plugin\ThemerPlugin::onPageInitialized() {#8102 …3}
      2 => Grav\Plugin\LoginPlugin::authorizeLoginPage(Event $event): void {#8103 …4}
      3 => Grav\Plugin\CommentsPlugin::onPageInitialized() {#8104 …3}
      4 => Grav\Plugin\AdminPlugin::onPageInitialized() {#8105 …3}
      5 => Grav\Plugin\ImportPlugin::onPageInitialized() {#8106 …3}
      6 => Grav\Plugin\LoginPlugin::authorizePage(): void {#8107 …4}
      7 => Grav\Plugin\FormPlugin::onPageInitialized(): void {#8108 …4}
      8 => Grav\Plugin\PaginationPlugin::onPageInitialized() {#8109 …3}
    ]
    
  2. "onPageInitialized"
    
  3. RocketTheme\Toolbox\Event\Event {#8089}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Grav.php
        return $event;
    }
 
    /**
     * Fires an event with optional parameters.
     *
     * @param  string $eventName
     * @param  Event|null $event
     * @return Event
     */
    public function fireEvent($eventName, Event $event = null)
    {
        /** @var EventDispatcherInterface $events */
        $events = $this['events'];
        if (null === $event) {
            $event = new Event();
        }
 
        $timestamp = microtime(true);
        $events->dispatch($event, $eventName);
 
        /** @var Debugger $debugger */
        $debugger = $this['debugger'];
        $debugger->addEvent($eventName, $event, $events, $timestamp);
 
        return $event;
    }
 
    /**
     * Set the final content length for the page and flush the buffer
     *
     * @return void
     */
    public function shutdown(): void
    {
        // Prevent user abort allowing onShutdown event to run without interruptions.
        if (function_exists('ignore_user_abort')) {
            @ignore_user_abort(true);
        }
 
Arguments
  1. RocketTheme\Toolbox\Event\Event {#8089}
    
  2. "onPageInitialized"
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/PagesProcessor.php
 
        // Dump Cache state
        $this->container['debugger']->addMessage($this->container['cache']->getCacheStatus());
 
        $this->container['pages']->init();
 
        $route = $this->container['route'];
 
        $this->container->fireEvent('onPagesInitialized', new Event(
            [
                'pages' => $this->container['pages'],
                'route' => $route,
                'request' => $request
            ]
        ));
        $this->container->fireEvent('onPageInitialized', new Event(
            [
                'page' => $this->container['page'],
                'route' => $route,
                'request' => $request
            ]
        ));
 
        /** @var PageInterface $page */
        $page = $this->container['page'];
 
        if (!$page->routable()) {
            $exception = new RequestException($request, 'Page Not Found', 404);
            // If no page found, fire event
            $event = new PageEvent([
                'page' => $page,
                'code' => $exception->getCode(),
                'message' => $exception->getMessage(),
                'exception' => $exception,
                'route' => $route,
                'request' => $request
            ]);
            $event->page = null;
            $event = $this->container->fireEvent('onPageNotFound', $event);
 
Arguments
  1. "onPageInitialized"
    
  2. RocketTheme\Toolbox\Event\Event {#8089}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
    protected $handler;
 
    /** @var ContainerInterface|null */
    protected $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. Nyholm\Psr7\ServerRequest {#214}
    
  2. Grav\Framework\RequestHandler\RequestHandler {#312}
    
/home/jeremygrav/jeremycherfas.net/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. Nyholm\Psr7\ServerRequest {#214}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/TwigProcessor.php
 */
class TwigProcessor extends ProcessorBase
{
    /** @var string */
    public $id = 'twig';
    /** @var string */
    public $title = 'Twig';
 
    /**
     * @param ServerRequestInterface $request
     * @param RequestHandlerInterface $handler
     * @return ResponseInterface
     */
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
    {
        $this->startTimer();
        $this->container['twig']->init();
        $this->stopTimer();
 
        return $handler->handle($request);
    }
}
 
Arguments
  1. Nyholm\Psr7\ServerRequest {#214}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
    protected $handler;
 
    /** @var ContainerInterface|null */
    protected $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. Nyholm\Psr7\ServerRequest {#214}
    
  2. Grav\Framework\RequestHandler\RequestHandler {#267}
    
/home/jeremygrav/jeremycherfas.net/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. Nyholm\Psr7\ServerRequest {#214}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/AssetsProcessor.php
class AssetsProcessor extends ProcessorBase
{
    /** @var string */
    public $id = '_assets';
    /** @var string */
    public $title = 'Assets';
 
    /**
     * @param ServerRequestInterface $request
     * @param RequestHandlerInterface $handler
     * @return ResponseInterface
     */
    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. Nyholm\Psr7\ServerRequest {#214}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
    protected $handler;
 
    /** @var ContainerInterface|null */
    protected $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. Nyholm\Psr7\ServerRequest {#214}
    
  2. Grav\Framework\RequestHandler\RequestHandler {#262}
    
/home/jeremygrav/jeremycherfas.net/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. Nyholm\Psr7\ServerRequest {#214}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/SchedulerProcessor.php
class SchedulerProcessor extends ProcessorBase
{
    /** @var string */
    public $id = '_scheduler';
    /** @var string */
    public $title = 'Scheduler';
 
    /**
     * @param ServerRequestInterface $request
     * @param RequestHandlerInterface $handler
     * @return ResponseInterface
     */
    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. Nyholm\Psr7\ServerRequest {#214}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
    protected $handler;
 
    /** @var ContainerInterface|null */
    protected $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. Nyholm\Psr7\ServerRequest {#214}
    
  2. Grav\Framework\RequestHandler\RequestHandler {#229}
    
/home/jeremygrav/jeremycherfas.net/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. Nyholm\Psr7\ServerRequest {#214}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/BackupsProcessor.php
class BackupsProcessor extends ProcessorBase
{
    /** @var string */
    public $id = '_backups';
    /** @var string */
    public $title = 'Backups';
 
    /**
     * @param ServerRequestInterface $request
     * @param RequestHandlerInterface $handler
     * @return ResponseInterface
     */
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
    {
        $this->startTimer();
        $backups = $this->container['backups'];
        $backups->init();
        $this->stopTimer();
 
        return $handler->handle($request);
    }
}
 
Arguments
  1. Nyholm\Psr7\ServerRequest {#214}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
    protected $handler;
 
    /** @var ContainerInterface|null */
    protected $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. Nyholm\Psr7\ServerRequest {#214}
    
  2. Grav\Framework\RequestHandler\RequestHandler {#226}
    
/home/jeremygrav/jeremycherfas.net/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. Nyholm\Psr7\ServerRequest {#214}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/TasksProcessor.php
                        $response = $handler->handle($request);
                    }
 
                    $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. Nyholm\Psr7\ServerRequest {#214}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
    protected $handler;
 
    /** @var ContainerInterface|null */
    protected $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. Nyholm\Psr7\ServerRequest {#214}
    
  2. Grav\Framework\RequestHandler\RequestHandler {#218}
    
/home/jeremygrav/jeremycherfas.net/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. Nyholm\Psr7\ServerRequest {#214}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/RequestProcessor.php
        $uri = $request->getUri();
        $ext = mb_strtolower(Utils::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. Nyholm\Psr7\ServerRequest {#214}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
    protected $handler;
 
    /** @var ContainerInterface|null */
    protected $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. Nyholm\Psr7\ServerRequest {#214}
    
  2. Grav\Framework\RequestHandler\RequestHandler {#212}
    
/home/jeremygrav/jeremycherfas.net/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. Nyholm\Psr7\ServerRequest {#63}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/ThemesProcessor.php
 */
class ThemesProcessor extends ProcessorBase
{
    /** @var string */
    public $id = 'themes';
    /** @var string */
    public $title = 'Themes';
 
    /**
     * @param ServerRequestInterface $request
     * @param RequestHandlerInterface $handler
     * @return ResponseInterface
     */
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
    {
        $this->startTimer();
        $this->container['themes']->init();
        $this->stopTimer();
 
        return $handler->handle($request);
    }
}
 
Arguments
  1. Nyholm\Psr7\ServerRequest {#63}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
    protected $handler;
 
    /** @var ContainerInterface|null */
    protected $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. Nyholm\Psr7\ServerRequest {#63}
    
  2. Grav\Framework\RequestHandler\RequestHandler {#196}
    
/home/jeremygrav/jeremycherfas.net/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. Nyholm\Psr7\ServerRequest {#63}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/PluginsProcessor.php
class PluginsProcessor extends ProcessorBase
{
    /** @var string */
    public $id = 'plugins';
    /** @var string */
    public $title = 'Initialize Plugins';
 
    /**
     * @param ServerRequestInterface $request
     * @param RequestHandlerInterface $handler
     * @return ResponseInterface
     */
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
    {
        $this->startTimer();
        $grav = $this->container;
        $grav->fireEvent('onPluginsInitialized');
        $this->stopTimer();
 
        return $handler->handle($request);
    }
}
 
Arguments
  1. Nyholm\Psr7\ServerRequest {#63}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
    protected $handler;
 
    /** @var ContainerInterface|null */
    protected $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. Nyholm\Psr7\ServerRequest {#63}
    
  2. Grav\Framework\RequestHandler\RequestHandler {#158}
    
/home/jeremygrav/jeremycherfas.net/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. Nyholm\Psr7\ServerRequest {#63}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/InitializeProcessor.php
        // Initialize URI (uses session, see issue #3269).
        $this->initializeUri($config);
 
        // Grav may return redirect response right away.
        $redirectCode = (int)$config->get('system.pages.redirect_trailing_slash', 1);
        if ($redirectCode) {
            $response = $this->handleRedirectRequest($request, $redirectCode > 300 ? $redirectCode : null);
            if ($response) {
                $this->stopTimer('_init');
 
                return $response;
            }
        }
 
        $this->stopTimer('_init');
 
        // Wrap call to next handler so that debugger can profile it.
        /** @var Response $response */
        $response = $debugger->profile(static function () use ($handler, $request) {
            return $handler->handle($request);
        });
 
        // Log both request and response and return the response.
        return $debugger->logRequest($request, $response);
    }
 
    public function processCli(): void
    {
        // Load configuration.
        $config = $this->initializeConfig();
 
        // Initialize logger.
        $this->initializeLogger($config);
 
        // Disable debugger.
        $this->container['debugger']->enabled(false);
 
        // Set timezone, locale.
        $this->initializeLocale($config);
 
Arguments
  1. Nyholm\Psr7\ServerRequest {#63}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Debugger.php
        }
 
        $this->addMeasures();
        $this->addDeprecations();
        $this->timers = [];
 
        return $this->debugbar->getData();
    }
 
    /**
     * Hierarchical Profiler support.
     *
     * @param callable $callable
     * @param string|null $message
     * @return mixed
     */
    public function profile(callable $callable, string $message = null)
    {
        $this->startProfiling();
        $response = $callable();
        $this->stopProfiling($message);
 
        return $response;
    }
 
    public function addTwigProfiler(Environment $twig): void
    {
        $clockwork = $this->getClockwork();
        if ($clockwork) {
            $source = new TwigClockworkDataSource($twig);
            $source->listenToEvents();
            $clockwork->addDataSource($source);
        }
    }
 
    /**
     * Start profiling code.
     *
     * @return void
     */
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Processors/InitializeProcessor.php
        $this->initializeUri($config);
 
        // Grav may return redirect response right away.
        $redirectCode = (int)$config->get('system.pages.redirect_trailing_slash', 1);
        if ($redirectCode) {
            $response = $this->handleRedirectRequest($request, $redirectCode > 300 ? $redirectCode : null);
            if ($response) {
                $this->stopTimer('_init');
 
                return $response;
            }
        }
 
        $this->stopTimer('_init');
 
        // Wrap call to next handler so that debugger can profile it.
        /** @var Response $response */
        $response = $debugger->profile(static function () use ($handler, $request) {
            return $handler->handle($request);
        });
 
        // Log both request and response and return the response.
        return $debugger->logRequest($request, $response);
    }
 
    public function processCli(): void
    {
        // Load configuration.
        $config = $this->initializeConfig();
 
        // Initialize logger.
        $this->initializeLogger($config);
 
        // Disable debugger.
        $this->container['debugger']->enabled(false);
 
        // Set timezone, locale.
        $this->initializeLocale($config);
 
        // Load plugins.
Arguments
  1. Closure() {#155 …3}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
    protected $handler;
 
    /** @var ContainerInterface|null */
    protected $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. Nyholm\Psr7\ServerRequest {#63}
    
  2. Grav\Framework\RequestHandler\RequestHandler {#89}
    
/home/jeremygrav/jeremycherfas.net/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. Nyholm\Psr7\ServerRequest {#63}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Middlewares/MultipartRequestSupport.php
use function in_array;
use function is_array;
use function strlen;
 
/**
 * Multipart request support for PUT and PATCH.
 */
class MultipartRequestSupport implements MiddlewareInterface
{
    /**
     * @param ServerRequestInterface $request
     * @param RequestHandlerInterface $handler
     * @return ResponseInterface
     */
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
    {
        $contentType = $request->getHeaderLine('content-type');
        $method = $request->getMethod();
        if (!str_starts_with($contentType, 'multipart/form-data') || !in_array($method, ['PUT', 'PATH'], true)) {
            return $handler->handle($request);
        }
 
        $boundary = explode('; boundary=', $contentType, 2)[1] ?? '';
        $parts = explode("--{$boundary}", $request->getBody()->getContents());
        $parts = array_slice($parts, 1, count($parts) - 2);
 
        $params = [];
        $files = [];
        foreach ($parts as $part) {
            $this->processPart($params, $files, $part);
        }
 
        return $handler->handle($request->withParsedBody($params)->withUploadedFiles($files));
    }
 
    /**
     * @param array $params
     * @param array $files
     * @param string $part
     * @return void
Arguments
  1. Nyholm\Psr7\ServerRequest {#63}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
    protected $handler;
 
    /** @var ContainerInterface|null */
    protected $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. Nyholm\Psr7\ServerRequest {#63}
    
  2. Grav\Framework\RequestHandler\RequestHandler {#87}
    
/home/jeremygrav/jeremycherfas.net/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. Nyholm\Psr7\ServerRequest {#63}
    
/home/jeremygrav/jeremycherfas.net/system/src/Grav/Common/Grav.php
                },
                'pagesProcessor' => function () {
                    return new PagesProcessor($this);
                },
                'debuggerAssetsProcessor' => function () {
                    return new DebuggerAssetsProcessor($this);
                },
                'renderProcessor' => function () {
                    return new RenderProcessor($this);
                },
            ]
        );
 
        $default = static function () {
            return new Response(404, ['Expires' => 0, 'Cache-Control' => 'no-store, max-age=0'], 'Not Found');
        };
 
        $collection = new RequestHandler($this->middleware, $default, $container);
 
        $response = $collection->handle($this['request']);
        $body = $response->getBody();
 
        /** @var Messages $messages */
        $messages = $this['messages'];
 
        // Prevent caching if session messages were displayed in the page.
        $noCache = $messages->isCleared();
        if ($noCache) {
            $response = $response->withHeader('Cache-Control', 'no-store, max-age=0');
        }
 
        // Handle ETag and If-None-Match headers.
        if ($response->getHeaderLine('ETag') === '1') {
            $etag = md5($body);
            $response = $response->withHeader('ETag', '"' . $etag . '"');
 
            $search = trim($this['request']->getHeaderLine('If-None-Match'), '"');
            if ($noCache === false && $search === $etag) {
                $response = $response->withStatus(304);
                $body = '';
Arguments
  1. Nyholm\Psr7\ServerRequest {#63}
    
/home/jeremygrav/jeremycherfas.net/index.php
 
// Register the auto-loader.
$loader = require $autoload;
 
// Set timezone to default, falls back to system if php.ini not set
date_default_timezone_set(@date_default_timezone_get());
 
// Set internal encoding.
@ini_set('default_charset', 'UTF-8');
mb_internal_encoding('UTF-8');
 
use Grav\Common\Grav;
use RocketTheme\Toolbox\Event\Event;
 
// Get the Grav instance
$grav = Grav::instance(array('loader' => $loader));
 
// Process the page
try {
    $grav->process();
} catch (\Error|\Exception $e) {
    $grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
    throw $e;
}
 

Environment & details:

empty
empty
empty
empty
Key Value
redirect_after_login
"/blog/balance-we-dont-need-no-stinkin-balance"
Key Value
PATH
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
CONTENT_LENGTH
"0"
SCRIPT_NAME
"/index.php"
REQUEST_URI
"/blog/balance-we-dont-need-no-stinkin-balance"
QUERY_STRING
""
REQUEST_METHOD
"GET"
SERVER_PROTOCOL
"HTTP/1.1"
GATEWAY_INTERFACE
"CGI/1.1"
REDIRECT_URL
"/blog/balance-we-dont-need-no-stinkin-balance"
REMOTE_PORT
"65320"
SCRIPT_FILENAME
"/home/jeremygrav/jeremycherfas.net/index.php"
SERVER_ADMIN
"[email protected]"
CONTEXT_DOCUMENT_ROOT
"/home/jeremygrav/jeremycherfas.net"
CONTEXT_PREFIX
""
REQUEST_SCHEME
"http"
DOCUMENT_ROOT
"/home/jeremygrav/jeremycherfas.net"
REMOTE_ADDR
"44.205.5.65"
SERVER_PORT
"80"
SERVER_ADDR
"173.236.201.69"
SERVER_NAME
"www.jeremycherfas.net"
SERVER_SOFTWARE
"Apache"
SERVER_SIGNATURE
""
HTTP_CF_IPCOUNTRY
"US"
HTTP_CDN_LOOP
"cloudflare"
HTTP_CF_CONNECTING_IP
"44.205.5.65"
HTTP_REFERER
"https://jeremycherfas.net/blog/balance-we-dont-need-no-stinkin-balance"
HTTP_USER_AGENT
"claudebot"
HTTP_ACCEPT
"*/*"
HTTP_CF_VISITOR
"{"scheme":"https"}"
HTTP_X_FORWARDED_PROTO
"https"
HTTP_CF_RAY
"86bbeacd58c28254-PDX"
HTTP_ACCEPT_ENCODING
"gzip, br"
HTTP_CONNECTION
"close"
HTTP_HOST
"www.jeremycherfas.net"
DH_USER
"jeremygrav"
ds_id_30456892
""
dsid
"30456892"
SCRIPT_URI
"http://www.jeremycherfas.net/blog/balance-we-dont-need-no-stinkin-balance"
SCRIPT_URL
"/blog/balance-we-dont-need-no-stinkin-balance"
QS_ConnectionId
"171167396599731359198874"
QS_AllConn
"3"
QS_SrvConn
"3"
UNIQUE_ID
"ZgYSbRYIAbTtjB3@HQ9K3wAAJ0s"
REDIRECT_STATUS
"200"
REDIRECT_DH_USER
"jeremygrav"
REDIRECT_ds_id_30456892
""
REDIRECT_dsid
"30456892"
REDIRECT_SCRIPT_URI
"http://www.jeremycherfas.net/blog/balance-we-dont-need-no-stinkin-balance"
REDIRECT_SCRIPT_URL
"/blog/balance-we-dont-need-no-stinkin-balance"
REDIRECT_QS_ConnectionId
"171167396599731359198874"
REDIRECT_QS_AllConn
"3"
REDIRECT_QS_SrvConn
"3"
REDIRECT_UNIQUE_ID
"ZgYSbRYIAbTtjB3@HQ9K3wAAJ0s"
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1711673966.0014
REQUEST_TIME
1711673966
Key Value
PATH
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
CONTENT_LENGTH
"0"
SCRIPT_NAME
"/index.php"
REQUEST_URI
"/blog/balance-we-dont-need-no-stinkin-balance"
QUERY_STRING
""
REQUEST_METHOD
"GET"
SERVER_PROTOCOL
"HTTP/1.1"
GATEWAY_INTERFACE
"CGI/1.1"
REDIRECT_URL
"/blog/balance-we-dont-need-no-stinkin-balance"
REMOTE_PORT
"65320"
SCRIPT_FILENAME
"/home/jeremygrav/jeremycherfas.net/index.php"
SERVER_ADMIN
"[email protected]"
CONTEXT_DOCUMENT_ROOT
"/home/jeremygrav/jeremycherfas.net"
CONTEXT_PREFIX
""
REQUEST_SCHEME
"http"
DOCUMENT_ROOT
"/home/jeremygrav/jeremycherfas.net"
REMOTE_ADDR
"44.205.5.65"
SERVER_PORT
"80"
SERVER_ADDR
"173.236.201.69"
SERVER_NAME
"www.jeremycherfas.net"
SERVER_SOFTWARE
"Apache"
SERVER_SIGNATURE
""
HTTP_CF_IPCOUNTRY
"US"
HTTP_CDN_LOOP
"cloudflare"
HTTP_CF_CONNECTING_IP
"44.205.5.65"
HTTP_REFERER
"https://jeremycherfas.net/blog/balance-we-dont-need-no-stinkin-balance"
HTTP_USER_AGENT
"claudebot"
HTTP_ACCEPT
"*/*"
HTTP_CF_VISITOR
"{"scheme":"https"}"
HTTP_X_FORWARDED_PROTO
"https"
HTTP_CF_RAY
"86bbeacd58c28254-PDX"
HTTP_ACCEPT_ENCODING
"gzip, br"
HTTP_CONNECTION
"close"
HTTP_HOST
"www.jeremycherfas.net"
DH_USER
"jeremygrav"
ds_id_30456892
""
dsid
"30456892"
SCRIPT_URI
"http://www.jeremycherfas.net/blog/balance-we-dont-need-no-stinkin-balance"
SCRIPT_URL
"/blog/balance-we-dont-need-no-stinkin-balance"
QS_ConnectionId
"171167396599731359198874"
QS_AllConn
"3"
QS_SrvConn
"3"
UNIQUE_ID
"ZgYSbRYIAbTtjB3@HQ9K3wAAJ0s"
REDIRECT_STATUS
"200"
REDIRECT_DH_USER
"jeremygrav"
REDIRECT_ds_id_30456892
""
REDIRECT_dsid
"30456892"
REDIRECT_SCRIPT_URI
"http://www.jeremycherfas.net/blog/balance-we-dont-need-no-stinkin-balance"
REDIRECT_SCRIPT_URL
"/blog/balance-we-dont-need-no-stinkin-balance"
REDIRECT_QS_ConnectionId
"171167396599731359198874"
REDIRECT_QS_AllConn
"3"
REDIRECT_QS_SrvConn
"3"
REDIRECT_UNIQUE_ID
"ZgYSbRYIAbTtjB3@HQ9K3wAAJ0s"
FCGI_ROLE
"RESPONDER"
0. Whoops\Handler\PrettyPageHandler
1. Whoops\Handler\CallbackHandler