Illuminate \ View \ ViewException (E_ERROR)
Unable to locate a class or view for component [link]. (View: /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/resources/views/partials/page-header.blade.php)
Previous exceptions
  • Unable to locate a class or view for component [link]. (0)
Illuminate\View\ViewException thrown with message "Unable to locate a class or view for component [link]. (View: /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/resources/views/partials/page-header.blade.php)" Stacktrace: #25 Illuminate\View\ViewException in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php:245 #24 Illuminate\View\Engines\CompilerEngine:handleViewException in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Engines/PhpEngine.php:43 #23 InvalidArgumentException in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php:245 #22 Illuminate\View\Compilers\ComponentTagCompiler:componentClass in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php:185 #21 Illuminate\View\Compilers\ComponentTagCompiler:componentString in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php:170 #20 Illuminate\View\Compilers\ComponentTagCompiler:Illuminate\View\Compilers\{closure} in [internal]:0 #19 preg_replace_callback in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php:165 #18 Illuminate\View\Compilers\ComponentTagCompiler:compileSelfClosingTags in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php:79 #17 Illuminate\View\Compilers\ComponentTagCompiler:compileTags in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php:66 #16 Illuminate\View\Compilers\ComponentTagCompiler:compile in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/BladeCompiler.php:322 #15 Illuminate\View\Compilers\BladeCompiler:compileComponentTags in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/BladeCompiler.php:222 #14 Illuminate\View\Compilers\BladeCompiler:compileString in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/BladeCompiler.php:143 #13 Illuminate\View\Compilers\BladeCompiler:compile in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Engines/CompilerEngine.php:51 #12 Illuminate\View\Engines\CompilerEngine:get in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php:139 #11 Illuminate\View\View:getContents in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php:122 #10 Illuminate\View\View:renderContents in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php:91 #9 Illuminate\View\View:render in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/storage/framework/views/92e2d4bf47572d239234139856f46ba279d075ed.php:2 #8 include in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Engines/PhpEngine.php:41 #7 Illuminate\View\Engines\PhpEngine:evaluatePath in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Engines/CompilerEngine.php:57 #6 Illuminate\View\Engines\CompilerEngine:get in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php:139 #5 Illuminate\View\View:getContents in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php:122 #4 Illuminate\View\View:renderContents in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php:91 #3 Illuminate\View\View:render in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/index.php:4 #2 include in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/wp/wp-includes/template-loader.php:106 #1 require_once in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/wp/wp-blog-header.php:19 #0 require in /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/index.php:6
25
Illuminate\View\ViewException
/vendor/illuminate/view/Compilers/ComponentTagCompiler.php245
24
Illuminate\View\Engines\CompilerEngine handleViewException
/vendor/illuminate/view/Engines/PhpEngine.php43
23
InvalidArgumentException
/vendor/illuminate/view/Compilers/ComponentTagCompiler.php245
22
Illuminate\View\Compilers\ComponentTagCompiler componentClass
/vendor/illuminate/view/Compilers/ComponentTagCompiler.php185
21
Illuminate\View\Compilers\ComponentTagCompiler componentString
/vendor/illuminate/view/Compilers/ComponentTagCompiler.php170
20
Illuminate\View\Compilers\ComponentTagCompiler Illuminate\View\Compilers\{closure}
[internal]0
19
preg_replace_callback
/vendor/illuminate/view/Compilers/ComponentTagCompiler.php165
18
Illuminate\View\Compilers\ComponentTagCompiler compileSelfClosingTags
/vendor/illuminate/view/Compilers/ComponentTagCompiler.php79
17
Illuminate\View\Compilers\ComponentTagCompiler compileTags
/vendor/illuminate/view/Compilers/ComponentTagCompiler.php66
16
Illuminate\View\Compilers\ComponentTagCompiler compile
/vendor/illuminate/view/Compilers/BladeCompiler.php322
15
Illuminate\View\Compilers\BladeCompiler compileComponentTags
/vendor/illuminate/view/Compilers/BladeCompiler.php222
14
Illuminate\View\Compilers\BladeCompiler compileString
/vendor/illuminate/view/Compilers/BladeCompiler.php143
13
Illuminate\View\Compilers\BladeCompiler compile
/vendor/illuminate/view/Engines/CompilerEngine.php51
12
Illuminate\View\Engines\CompilerEngine get
/vendor/illuminate/view/View.php139
11
Illuminate\View\View getContents
/vendor/illuminate/view/View.php122
10
Illuminate\View\View renderContents
/vendor/illuminate/view/View.php91
9
Illuminate\View\View render
/storage/framework/views/92e2d4bf47572d239234139856f46ba279d075ed.php2
8
include
/vendor/illuminate/view/Engines/PhpEngine.php41
7
Illuminate\View\Engines\PhpEngine evaluatePath
/vendor/illuminate/view/Engines/CompilerEngine.php57
6
Illuminate\View\Engines\CompilerEngine get
/vendor/illuminate/view/View.php139
5
Illuminate\View\View getContents
/vendor/illuminate/view/View.php122
4
Illuminate\View\View renderContents
/vendor/illuminate/view/View.php91
3
Illuminate\View\View render
/index.php4
2
include
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/wp/wp-includes/template-loader.php106
1
require_once
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/wp/wp-blog-header.php19
0
require
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/index.php6
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php
            }
 
            if ($viewFactory->exists($alias)) {
                return $alias;
            }
 
            throw new InvalidArgumentException(
                "Unable to locate class or view [{$alias}] for component [{$component}]."
            );
        }
 
        if (class_exists($class = $this->guessClassName($component))) {
            return $class;
        }
 
        if ($viewFactory->exists($view = $this->guessViewName($component))) {
            return $view;
        }
 
        throw new InvalidArgumentException(
            "Unable to locate a class or view for component [{$component}]."
        );
    }
 
    /**
     * Guess the class name for the given component.
     *
     * @param  string  $component
     * @return string
     */
    public function guessClassName(string $component)
    {
        $namespace = Container::getInstance()
                    ->make(Application::class)
                    ->getNamespace();
 
        $componentPieces = array_map(function ($componentPiece) {
            return ucfirst(Str::camel($componentPiece));
        }, explode('.', $component));
 
Arguments
  1. "Unable to locate a class or view for component [link]. (View: /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/resources/views/partials/page-header.blade.php)"
    
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Engines/PhpEngine.php
     *
     * @param  string  $__path
     * @param  array  $__data
     * @return string
     */
    protected function evaluatePath($__path, $__data)
    {
        $obLevel = ob_get_level();
 
        ob_start();
 
        extract($__data, EXTR_SKIP);
 
        // We'll evaluate the contents of the view inside a try/catch block so we can
        // flush out any stray output that might get out before an error occurs or
        // an exception is thrown. This prevents any partial views from leaking.
        try {
            include $__path;
        } catch (Throwable $e) {
            $this->handleViewException($e, $obLevel);
        }
 
        return ltrim(ob_get_clean());
    }
 
    /**
     * Handle a view exception.
     *
     * @param  \Throwable  $e
     * @param  int  $obLevel
     * @return void
     *
     * @throws \Throwable
     */
    protected function handleViewException(Throwable $e, $obLevel)
    {
        while (ob_get_level() > $obLevel) {
            ob_end_clean();
        }
 
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php
            }
 
            if ($viewFactory->exists($alias)) {
                return $alias;
            }
 
            throw new InvalidArgumentException(
                "Unable to locate class or view [{$alias}] for component [{$component}]."
            );
        }
 
        if (class_exists($class = $this->guessClassName($component))) {
            return $class;
        }
 
        if ($viewFactory->exists($view = $this->guessViewName($component))) {
            return $view;
        }
 
        throw new InvalidArgumentException(
            "Unable to locate a class or view for component [{$component}]."
        );
    }
 
    /**
     * Guess the class name for the given component.
     *
     * @param  string  $component
     * @return string
     */
    public function guessClassName(string $component)
    {
        $namespace = Container::getInstance()
                    ->make(Application::class)
                    ->getNamespace();
 
        $componentPieces = array_map(function ($componentPiece) {
            return ucfirst(Str::camel($componentPiece));
        }, explode('.', $component));
 
Arguments
  1. "Unable to locate a class or view for component [link]."
    
Exception message: Unable to locate a class or view for component [link].
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php
            $this->boundAttributes = [];
 
            $attributes = $this->getAttributesFromAttributeString($matches['attributes']);
 
            return $this->componentString($matches[1], $attributes)."\n@endcomponentClass ";
        }, $value);
    }
 
    /**
     * Compile the Blade component string for the given component and attributes.
     *
     * @param  string  $component
     * @param  array  $attributes
     * @return string
     *
     * @throws \InvalidArgumentException
     */
    protected function componentString(string $component, array $attributes)
    {
        $class = $this->componentClass($component);
 
        [$data, $attributes] = $this->partitionDataAndAttributes($class, $attributes);
 
        $data = $data->mapWithKeys(function ($value, $key) {
            return [Str::camel($key) => $value];
        });
 
        // If the component doesn't exists as a class we'll assume it's a class-less
        // component and pass the component as a view parameter to the data so it
        // can be accessed within the component and we can render out the view.
        if (! class_exists($class)) {
            $parameters = [
                'view' => "'$class'",
                'data' => '['.$this->attributesToString($data->all(), $escapeBound = false).']',
            ];
 
            $class = AnonymousComponent::class;
        } else {
            $parameters = $data->all();
        }
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php
                            (?:
                                \\\"[^\\\"]*\\\"
                                |
                                \'[^\']*\'
                                |
                                [^\'\\\"=<>]+
                            )
                        )?
                    )*
                    \s*
                )
            \/>
        /x";
 
        return preg_replace_callback($pattern, function (array $matches) {
            $this->boundAttributes = [];
 
            $attributes = $this->getAttributesFromAttributeString($matches['attributes']);
 
            return $this->componentString($matches[1], $attributes)."\n@endcomponentClass ";
        }, $value);
    }
 
    /**
     * Compile the Blade component string for the given component and attributes.
     *
     * @param  string  $component
     * @param  array  $attributes
     * @return string
     *
     * @throws \InvalidArgumentException
     */
    protected function componentString(string $component, array $attributes)
    {
        $class = $this->componentClass($component);
 
        [$data, $attributes] = $this->partitionDataAndAttributes($class, $attributes);
 
        $data = $data->mapWithKeys(function ($value, $key) {
            return [Str::camel($key) => $value];
[internal]
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php
                    (?:
                        \s+
                        [\w\-:.@]+
                        (
                            =
                            (?:
                                \\\"[^\\\"]*\\\"
                                |
                                \'[^\']*\'
                                |
                                [^\'\\\"=<>]+
                            )
                        )?
                    )*
                    \s*
                )
            \/>
        /x";
 
        return preg_replace_callback($pattern, function (array $matches) {
            $this->boundAttributes = [];
 
            $attributes = $this->getAttributesFromAttributeString($matches['attributes']);
 
            return $this->componentString($matches[1], $attributes)."\n@endcomponentClass ";
        }, $value);
    }
 
    /**
     * Compile the Blade component string for the given component and attributes.
     *
     * @param  string  $component
     * @param  array  $attributes
     * @return string
     *
     * @throws \InvalidArgumentException
     */
    protected function componentString(string $component, array $attributes)
    {
        $class = $this->componentClass($component);
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php
     * @return string
     */
    public function compile(string $value)
    {
        $value = $this->compileSlots($value);
 
        return $this->compileTags($value);
    }
 
    /**
     * Compile the tags within the given string.
     *
     * @param  string  $value
     * @return string
     *
     * @throws \InvalidArgumentException
     */
    public function compileTags(string $value)
    {
        $value = $this->compileSelfClosingTags($value);
        $value = $this->compileOpeningTags($value);
        $value = $this->compileClosingTags($value);
 
        return $value;
    }
 
    /**
     * Compile the opening tags within the given string.
     *
     * @param  string  $value
     * @return string
     *
     * @throws \InvalidArgumentException
     */
    protected function compileOpeningTags(string $value)
    {
        $pattern = "/
            <
                \s*
                x[-\:]([\w\-\:\.]*)
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/ComponentTagCompiler.php
     * @return void
     */
    public function __construct(array $aliases = [], ?BladeCompiler $blade = null)
    {
        $this->aliases = $aliases;
 
        $this->blade = $blade ?: new BladeCompiler(new Filesystem, sys_get_temp_dir());
    }
 
    /**
     * Compile the component and slot tags within the given string.
     *
     * @param  string  $value
     * @return string
     */
    public function compile(string $value)
    {
        $value = $this->compileSlots($value);
 
        return $this->compileTags($value);
    }
 
    /**
     * Compile the tags within the given string.
     *
     * @param  string  $value
     * @return string
     *
     * @throws \InvalidArgumentException
     */
    public function compileTags(string $value)
    {
        $value = $this->compileSelfClosingTags($value);
        $value = $this->compileOpeningTags($value);
        $value = $this->compileClosingTags($value);
 
        return $value;
    }
 
    /**
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/BladeCompiler.php
        return $this->getRawPlaceholder(
            array_push($this->rawBlocks, $value) - 1
        );
    }
 
    /**
     * Compile the component tags.
     *
     * @param  string  $value
     * @return string
     */
    protected function compileComponentTags($value)
    {
        if (! $this->compilesComponentTags) {
            return $value;
        }
 
        return (new ComponentTagCompiler(
            $this->classComponentAliases, $this
        ))->compile($value);
    }
 
    /**
     * Replace the raw placeholders with the original code stored in the raw blocks.
     *
     * @param  string  $result
     * @return string
     */
    protected function restoreRawContent($result)
    {
        $result = preg_replace_callback('/'.$this->getRawPlaceholder('(\d+)').'/', function ($matches) {
            return $this->rawBlocks[$matches[1]];
        }, $result);
 
        $this->rawBlocks = [];
 
        return $result;
    }
 
    /**
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/BladeCompiler.php
    public function setPath($path)
    {
        $this->path = $path;
    }
 
    /**
     * Compile the given Blade template contents.
     *
     * @param  string  $value
     * @return string
     */
    public function compileString($value)
    {
        [$this->footer, $result] = [[], ''];
 
        // First we will compile the Blade component tags. This is a precompile style
        // step which compiles the component Blade tags into @component directives
        // that may be used by Blade. Then we should call any other precompilers.
        $value = $this->compileComponentTags(
            $this->compileComments($this->storeUncompiledBlocks($value))
        );
 
        foreach ($this->precompilers as $precompiler) {
            $value = call_user_func($precompiler, $value);
        }
 
        // Here we will loop through all of the tokens returned by the Zend lexer and
        // parse each one into the corresponding valid PHP. We will then have this
        // template as the correctly rendered PHP that can be rendered natively.
        foreach (token_get_all($value) as $token) {
            $result .= is_array($token) ? $this->parseToken($token) : $token;
        }
 
        if (! empty($this->rawBlocks)) {
            $result = $this->restoreRawContent($result);
        }
 
        // If there are any footer lines that need to get added to a template we will
        // add them here at the end of the template. This gets used mainly for the
        // template inheritance via the extends keyword that should be appended.
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Compilers/BladeCompiler.php
     * Indicates if component tags should be compiled.
     *
     * @var bool
     */
    protected $compilesComponentTags = true;
 
    /**
     * Compile the view at the given path.
     *
     * @param  string|null  $path
     * @return void
     */
    public function compile($path = null)
    {
        if ($path) {
            $this->setPath($path);
        }
 
        if (! is_null($this->cachePath)) {
            $contents = $this->compileString($this->files->get($this->getPath()));
 
            if (! empty($this->getPath())) {
                $contents = $this->appendFilePath($contents);
            }
 
            $this->files->put(
                $this->getCompiledPath($this->getPath()), $contents
            );
        }
    }
 
    /**
     * Append the file path to the compiled string.
     *
     * @param  string  $contents
     * @return string
     */
    protected function appendFilePath($contents)
    {
        $tokens = $this->getOpenAndClosingPhpTokens($contents);
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Engines/CompilerEngine.php
    {
        $this->compiler = $compiler;
    }
 
    /**
     * Get the evaluated contents of the view.
     *
     * @param  string  $path
     * @param  array  $data
     * @return string
     */
    public function get($path, array $data = [])
    {
        $this->lastCompiled[] = $path;
 
        // If this given view has expired, which means it has simply been edited since
        // it was last compiled, we will re-compile the views so we can evaluate a
        // fresh copy of the view. We'll pass the compiler the path of the view.
        if ($this->compiler->isExpired($path)) {
            $this->compiler->compile($path);
        }
 
        // Once we have the path to the compiled file, we will evaluate the paths with
        // typical PHP just like any other templates. We also keep a stack of views
        // which have been rendered for right exception messages to be generated.
        $results = $this->evaluatePath($this->compiler->getCompiledPath($path), $data);
 
        array_pop($this->lastCompiled);
 
        return $results;
    }
 
    /**
     * Handle a view exception.
     *
     * @param  \Throwable  $e
     * @param  int  $obLevel
     * @return void
     *
     * @throws \Throwable
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php
        $this->factory->callComposer($this);
 
        $contents = $this->getContents();
 
        // Once we've finished rendering the view, we'll decrement the render count
        // so that each sections get flushed out next time a view is created and
        // no old sections are staying around in the memory of an environment.
        $this->factory->decrementRender();
 
        return $contents;
    }
 
    /**
     * Get the evaluated contents of the view.
     *
     * @return string
     */
    protected function getContents()
    {
        return $this->engine->get($this->path, $this->gatherData());
    }
 
    /**
     * Get the data bound to the view instance.
     *
     * @return array
     */
    public function gatherData()
    {
        $data = array_merge($this->factory->getShared(), $this->data);
 
        foreach ($data as $key => $value) {
            if ($value instanceof Renderable) {
                $data[$key] = $value->render();
            }
        }
 
        return $data;
    }
 
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php
 
            throw $e;
        }
    }
 
    /**
     * Get the contents of the view instance.
     *
     * @return string
     */
    protected function renderContents()
    {
        // We will keep track of the amount of views being rendered so we can flush
        // the section after the complete rendering operation is done. This will
        // clear out the sections for any separate views that may be rendered.
        $this->factory->incrementRender();
 
        $this->factory->callComposer($this);
 
        $contents = $this->getContents();
 
        // Once we've finished rendering the view, we'll decrement the render count
        // so that each sections get flushed out next time a view is created and
        // no old sections are staying around in the memory of an environment.
        $this->factory->decrementRender();
 
        return $contents;
    }
 
    /**
     * Get the evaluated contents of the view.
     *
     * @return string
     */
    protected function getContents()
    {
        return $this->engine->get($this->path, $this->gatherData());
    }
 
    /**
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php
        $this->view = $view;
        $this->path = $path;
        $this->engine = $engine;
        $this->factory = $factory;
 
        $this->data = $data instanceof Arrayable ? $data->toArray() : (array) $data;
    }
 
    /**
     * Get the string contents of the view.
     *
     * @param  callable|null  $callback
     * @return array|string
     *
     * @throws \Throwable
     */
    public function render(callable $callback = null)
    {
        try {
            $contents = $this->renderContents();
 
            $response = isset($callback) ? $callback($this, $contents) : null;
 
            // Once we have the contents of the view, we will flush the sections if we are
            // done rendering all views so that there is nothing left hanging over when
            // another view gets rendered in the future by the application developer.
            $this->factory->flushStateIfDoneRendering();
 
            return ! is_null($response) ? $response : $contents;
        } catch (Throwable $e) {
            $this->factory->flushState();
 
            throw $e;
        }
    }
 
    /**
     * Get the contents of the view instance.
     *
     * @return string
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/storage/framework/views/92e2d4bf47572d239234139856f46ba279d075ed.php
<?php $__env->startSection('content'); ?>
  <?php echo $__env->make('partials.page-header', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
 
  <?php if(! have_posts()): ?>
     <?php if (isset($component)) { $__componentOriginald4c8f106e1e33ab85c5d037c2504e2574c1b0975 = $component; } ?>
<?php $component = $__env->getContainer()->make(App\View\Components\Alert::class, ['type' => 'warning']); ?>
<?php $component->withName('alert'); ?>
<?php if ($component->shouldRender()): ?>
<?php $__env->startComponent($component->resolveView(), $component->data()); ?>
<?php $component->withAttributes([]); ?>
      <?php echo __('Sorry, no results were found.', 'sage'); ?>
 
     <?php if (isset($__componentOriginald4c8f106e1e33ab85c5d037c2504e2574c1b0975)): ?>
<?php $component = $__componentOriginald4c8f106e1e33ab85c5d037c2504e2574c1b0975; ?>
<?php unset($__componentOriginald4c8f106e1e33ab85c5d037c2504e2574c1b0975); ?>
<?php endif; ?>
<?php echo $__env->renderComponent(); ?>
<?php endif; ?> 
 
    <?php echo get_search_form(false); ?>
 
  <?php endif; ?>
 
  <?php while(have_posts()): ?> <?php (the_post()); ?>
    <?php echo $__env->first(['partials.content-' . get_post_type(), 'partials.content'], \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
  <?php endwhile; ?>
 
  <?php echo get_the_posts_navigation(); ?>
 
<?php $__env->stopSection(); ?>
 
<?php $__env->startSection('sidebar'); ?>
  <?php echo $__env->make('partials.sidebar', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
<?php $__env->stopSection(); ?>
 
<?php echo $__env->make('layouts.app', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH /home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/resources/views/index.blade.php ENDPATH**/ ?>
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Engines/PhpEngine.php
    /**
     * Get the evaluated contents of the view at the given path.
     *
     * @param  string  $__path
     * @param  array  $__data
     * @return string
     */
    protected function evaluatePath($__path, $__data)
    {
        $obLevel = ob_get_level();
 
        ob_start();
 
        extract($__data, EXTR_SKIP);
 
        // We'll evaluate the contents of the view inside a try/catch block so we can
        // flush out any stray output that might get out before an error occurs or
        // an exception is thrown. This prevents any partial views from leaking.
        try {
            include $__path;
        } catch (Throwable $e) {
            $this->handleViewException($e, $obLevel);
        }
 
        return ltrim(ob_get_clean());
    }
 
    /**
     * Handle a view exception.
     *
     * @param  \Throwable  $e
     * @param  int  $obLevel
     * @return void
     *
     * @throws \Throwable
     */
    protected function handleViewException(Throwable $e, $obLevel)
    {
        while (ob_get_level() > $obLevel) {
            ob_end_clean();
Arguments
  1. "/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/storage/framework/views/92e2d4bf47572d239234139856f46ba279d075ed.php"
    
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/Engines/CompilerEngine.php
     *
     * @param  string  $path
     * @param  array  $data
     * @return string
     */
    public function get($path, array $data = [])
    {
        $this->lastCompiled[] = $path;
 
        // If this given view has expired, which means it has simply been edited since
        // it was last compiled, we will re-compile the views so we can evaluate a
        // fresh copy of the view. We'll pass the compiler the path of the view.
        if ($this->compiler->isExpired($path)) {
            $this->compiler->compile($path);
        }
 
        // Once we have the path to the compiled file, we will evaluate the paths with
        // typical PHP just like any other templates. We also keep a stack of views
        // which have been rendered for right exception messages to be generated.
        $results = $this->evaluatePath($this->compiler->getCompiledPath($path), $data);
 
        array_pop($this->lastCompiled);
 
        return $results;
    }
 
    /**
     * Handle a view exception.
     *
     * @param  \Throwable  $e
     * @param  int  $obLevel
     * @return void
     *
     * @throws \Throwable
     */
    protected function handleViewException(Throwable $e, $obLevel)
    {
        $e = new ViewException($this->getMessage($e), 0, 1, $e->getFile(), $e->getLine(), $e);
 
        parent::handleViewException($e, $obLevel);
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php
        $this->factory->callComposer($this);
 
        $contents = $this->getContents();
 
        // Once we've finished rendering the view, we'll decrement the render count
        // so that each sections get flushed out next time a view is created and
        // no old sections are staying around in the memory of an environment.
        $this->factory->decrementRender();
 
        return $contents;
    }
 
    /**
     * Get the evaluated contents of the view.
     *
     * @return string
     */
    protected function getContents()
    {
        return $this->engine->get($this->path, $this->gatherData());
    }
 
    /**
     * Get the data bound to the view instance.
     *
     * @return array
     */
    public function gatherData()
    {
        $data = array_merge($this->factory->getShared(), $this->data);
 
        foreach ($data as $key => $value) {
            if ($value instanceof Renderable) {
                $data[$key] = $value->render();
            }
        }
 
        return $data;
    }
 
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php
 
            throw $e;
        }
    }
 
    /**
     * Get the contents of the view instance.
     *
     * @return string
     */
    protected function renderContents()
    {
        // We will keep track of the amount of views being rendered so we can flush
        // the section after the complete rendering operation is done. This will
        // clear out the sections for any separate views that may be rendered.
        $this->factory->incrementRender();
 
        $this->factory->callComposer($this);
 
        $contents = $this->getContents();
 
        // Once we've finished rendering the view, we'll decrement the render count
        // so that each sections get flushed out next time a view is created and
        // no old sections are staying around in the memory of an environment.
        $this->factory->decrementRender();
 
        return $contents;
    }
 
    /**
     * Get the evaluated contents of the view.
     *
     * @return string
     */
    protected function getContents()
    {
        return $this->engine->get($this->path, $this->gatherData());
    }
 
    /**
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/vendor/illuminate/view/View.php
        $this->view = $view;
        $this->path = $path;
        $this->engine = $engine;
        $this->factory = $factory;
 
        $this->data = $data instanceof Arrayable ? $data->toArray() : (array) $data;
    }
 
    /**
     * Get the string contents of the view.
     *
     * @param  callable|null  $callback
     * @return array|string
     *
     * @throws \Throwable
     */
    public function render(callable $callback = null)
    {
        try {
            $contents = $this->renderContents();
 
            $response = isset($callback) ? $callback($this, $contents) : null;
 
            // Once we have the contents of the view, we will flush the sections if we are
            // done rendering all views so that there is nothing left hanging over when
            // another view gets rendered in the future by the application developer.
            $this->factory->flushStateIfDoneRendering();
 
            return ! is_null($response) ? $response : $contents;
        } catch (Throwable $e) {
            $this->factory->flushState();
 
            throw $e;
        }
    }
 
    /**
     * Get the contents of the view instance.
     *
     * @return string
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/index.php
<!doctype html>
<html <?php language_attributes(); ?>>
 
    <?php echo \Roots\view(\Roots\app('sage.view'), \Roots\app('sage.data'))->render(); ?>
 
</html>
 
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/wp/wp-includes/template-loader.php
            }
 
            break;
        }
    }
 
    if ( ! $template ) {
        $template = get_index_template();
    }
 
    /**
     * Filters the path of the current template before including it.
     *
     * @since 3.0.0
     *
     * @param string $template The path of the template to include.
     */
    $template = apply_filters( 'template_include', $template );
    if ( $template ) {
        include $template;
    } elseif ( current_user_can( 'switch_themes' ) ) {
        $theme = wp_get_theme();
        if ( $theme->errors() ) {
            wp_die( $theme->errors() );
        }
    }
    return;
}
 
Arguments
  1. "/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/app/themes/londonpacific/index.php"
    
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/wp/wp-blog-header.php
<?php
/**
 * Loads the WordPress environment and template.
 *
 * @package WordPress
 */
 
if ( ! isset( $wp_did_header ) ) {
 
    $wp_did_header = true;
 
    // Load the WordPress library.
    require_once __DIR__ . '/wp-load.php';
 
    // Set up the WordPress query.
    wp();
 
    // Load the theme template.
    require_once ABSPATH . WPINC . '/template-loader.php';
 
}
 
Arguments
  1. "/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/wp/wp-includes/template-loader.php"
    
/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/index.php
<?php
/**
 * WordPress View Bootstrapper
 */
define('WP_USE_THEMES', true);
require __DIR__ . '/wp/wp-blog-header.php';
 
Arguments
  1. "/home/forge/dev.londonpacific.staging.poundandgrain.ca/releases/20250825173551/web/wp/wp-blog-header.php"
    

Environment & details:

Key Value
query_vars
array:1 [
  "category_name" => "quarterly-report"
]
query_string
"category_name=quarterly-report"
request
"category/quarterly-report"
matched_rule
"category/(.+?)/?$"
matched_query
"category_name=quarterly-report"
did_permalink
true
Key Value
query
array:1 [
  "category_name" => "quarterly-report"
]
query_vars
array:65 [
  "category_name" => "quarterly-report"
  "error" => ""
  "m" => ""
  "p" => 0
  "post_parent" => ""
  "subpost" => ""
  "subpost_id" => ""
  "attachment" => ""
  "attachment_id" => 0
  "name" => ""
  "pagename" => ""
  "page_id" => 0
  "second" => ""
  "minute" => ""
  "hour" => ""
  "day" => 0
  "monthnum" => 0
  "year" => 0
  "w" => 0
  "tag" => ""
  "cat" => 51
  "tag_id" => ""
  "author" => ""
  "author_name" => ""
  "feed" => ""
  "tb" => ""
  "paged" => 0
  "meta_key" => ""
  "meta_value" => ""
  "preview" => ""
  "s" => ""
  "sentence" => ""
  "title" => ""
  "fields" => ""
  "menu_order" => ""
  "embed" => ""
  "category__in" => []
  "category__not_in" => []
  "category__and" => []
  "post__in" => []
  "post__not_in" => []
  "post_name__in" => []
  "tag__in" => []
  "tag__not_in" => []
  "tag__and" => []
  "tag_slug__in" => []
  "tag_slug__and" => []
  "post_parent__in" => []
  "post_parent__not_in" => []
  "author__in" => []
  "author__not_in" => []
  "search_columns" => []
  "ignore_sticky_posts" => false
  "suppress_filters" => false
  "cache_results" => true
  "update_post_term_cache" => true
  "update_menu_item_cache" => false
  "lazy_load_term_meta" => true
  "update_post_meta_cache" => true
  "post_type" => ""
  "posts_per_page" => 10
  "nopaging" => false
  "comments_per_page" => "50"
  "no_found_rows" => false
  "order" => "DESC"
]
tax_query
WP_Tax_Query {#4026}
meta_query
WP_Meta_Query {#4025}
queried_object
WP_Term {#4031}
queried_object_id
51
request
"""
SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID\n
\t\t\t\t\t FROM wp_posts  LEFT JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)\n
\t\t\t\t\t WHERE 1=1  AND ( \n
  wp_term_relationships.term_taxonomy_id IN (51)\n
) AND ((wp_posts.post_type = 'post' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'acf-disabled')))\n
\t\t\t\t\t GROUP BY wp_posts.ID\n
\t\t\t\t\t ORDER BY wp_posts.post_date DESC\n
\t\t\t\t\t LIMIT 0, 10
"""
post_count
6
current_post
-1
before_loop
true
current_comment
-1
found_posts
6
max_num_pages
1
is_archive
true
is_category
true
Key Value
ID
3403
post_author
"8"
post_date
"2025-03-31 13:53:26"
post_date_gmt
"2025-03-31 20:53:26"
post_content
"""
<!-- wp:paragraph {"style":{"typography":{"fontSize":"30px"}}} -->\n
<p style="font-size:30px">EXECUTIVE SUMMARY </p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"style":{"color":{"text":"#080808"},"elements":{"link":{"color":{"text":"#080808"}}},"typography":{"fontSize":"16px"}}} -->\n
<p class="has-text-color has-link-color" style="color:#080808;font-size:16px"><em>The first quarter of 2025 brought a complex macroeconomic landscape, marked by shifting trade dynamics and rising protectionism. These trends signal tighter household and small business spending. The April 16th announcement from the Bank of Canada brought with it a hold to the current rate of 2.75%. I believe this was not so much to dismiss the prioritizing of economic growth amid trade war over potential tariff-driven inflation spikes, but perhaps a signal that a further cut at this time may not make much of a difference at all. With the April CPI release on May 20, we expect higher inflation as U.S. tariffs hit Canadian imports and Canada considers retaliatory measures. Analysts predict further pressure on the Bank of Canada to lower rates, with some forecasting a total of 100 basis points in cuts this year. So, maybe keeping our interest rate “powder dry” is the best approach.</em> </p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"style":{"typography":{"fontSize":"16px"}}} -->\n
<p style="font-size:16px">- <strong>BEN WILLIAMS </strong>Personal Real Estate Corporation &amp; Executive Vice President</p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"50px"} -->\n
<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"style":{"typography":{"fontSize":"30px"}}} -->\n
<p style="font-size:30px">INTEREST RATES</p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"style":{"typography":{"fontSize":"16px"}}} -->\n
<p style="font-size:16px"><strong>April 16th 2025</strong>, the Bank of Canada held its benchmark key policy rate at <strong>2.75 per cent</strong> hitting pause on its easing campaign after seven consecutive cuts.</p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"fontSize":"small"} -->\n
<p class="has-small-font-size"><a href="https://www.theglobeandmail.com/business/article-live-bank-of-canada-interest-rate-april-16/">Source: The Globe and mail</a></p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"50px"} -->\n
<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"style":{"typography":{"fontSize":"30px"}}} -->\n
<p style="font-size:30px">GDP / TARIFF </p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"style":{"typography":{"fontSize":"16px"}}} -->\n
<p style="font-size:16px"><strong>March 28th Stats Canada</strong> commented that “real gross domestic product rose 0.4 per cent in January, but the agency’s flash estimates for February suggest flat growth for the month”. “We expect that tariffs will have a clearer negative impact on GDP numbers for March and during Q2,” - Andrew Grantham, Senior Economist at CIBC</p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"fontSize":"small"} -->\n
<p class="has-small-font-size"><a href="https://www.bnnbloomberg.ca/business/economics/2025/03/28/real-gdp-grew-04-in-january-statistics-canada">Source: BNN Bloomberg</a></p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"style":{"typography":{"fontSize":"30px"}}} -->\n
<p style="font-size:30px">BOND MARKET </p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"style":{"typography":{"fontSize":"16px"}}} -->\n
<p style="font-size:16px">“Fortunately, there’s more fiscal room in Canada to play with but the willingness of investors (especially those abroad) to fund evermore debt is unclear.” The example of the German bond market <strong>March 2025</strong> demonstrates what large swings in the fiscal balance can mean for sovereign borrowing costs.</p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"fontSize":"small"} -->\n
<p class="has-small-font-size"><a href="https://www.nbc.ca/content/dam/bnc/taux-analyses/analyse-eco/mensuel/monthly-fixed-income-monitor.pdf">Source: NBC</a></p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"50px"} -->\n
<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"style":{"typography":{"fontSize":"30px"}}} -->\n
<p style="font-size:30px">INFLATION</p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"style":{"typography":{"fontSize":"16px"}}} -->\n
<p style="font-size:16px">Statistics Canada on Tuesday April 15th posted that Canada's annual inflation rate for <strong>March was 2.3 per cent</strong> - down from 2.6 per cent in February. Canadian consumer prices unexpectedly cooled and “the two biggest contributors to the downside surprise — gasoline and airfares — are the result of tariff-related concerns about global growth and Canadian travellers boycotting travel to the US,” said Kyle Chapman, FX markets analyst at Ballinger Group</p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"fontSize":"small"} -->\n
<p class="has-small-font-size"><a href="https://financialpost.com/news/economy/canada-inflation-rate-cooler-than-forecast">Source: Financial Post</a></p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"50px"} -->\n
<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"style":{"typography":{"fontSize":"30px"}}} -->\n
<p style="font-size:30px">THE REAL ESTATE MARKET</p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"style":{"typography":{"fontSize":"16px"}}} -->\n
<p style="font-size:16px">CMHC released its Housing Market Forecast in February 2025 citing foreign trade and immigration changes as major influencers of uncertainty. Predicting that housing starts will slow down from 2025 to 2027 due to fewer condominium apartments being built, their belief is that total starts will still remain above the 10-year average.</p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"style":{"typography":{"fontSize":"16px"}}} -->\n
<p style="font-size:16px">Among Canada’s big cities Vancouver recorded a <strong>59% decrease</strong> in starts driven lower by decreases in multi-unit starts.</p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"25px"} -->\n
<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->\n
\n
<!-- wp:paragraph {"fontSize":"small"} -->\n
<p class="has-small-font-size"><a href="https://www.cmhc-schl.gc.ca/professionals/housing-markets-data-and-research/marketreports/housing-market/housing-market-outlook">Source: CMHC</a></p>\n
<!-- /wp:paragraph -->\n
\n
<!-- wp:spacer {"height":"50px"} -->\n
<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>\n
<!-- /wp:spacer -->
"""
post_title
"Q1 | 2025 Market INSIGHT"
post_excerpt
""
post_status
"publish"
comment_status
"open"
ping_status
"open"
post_password
""
post_name
"q1-2025-market-insight"
to_ping
""
pinged
""
post_modified
"2025-06-24 00:27:31"
post_modified_gmt
"2025-06-24 07:27:31"
post_content_filtered
""
post_parent
0
guid
"https://dev.londonpacific.staging.poundandgrain.ca/?p=3403"
menu_order
0
post_type
"post"
post_mime_type
""
comment_count
"0"
filter
"raw"
empty
empty
empty
empty
empty
Key Value
SERVER_SOFTWARE
"nginx/1.18.0"
REQUEST_URI
"/category/quarterly-report/"
USER
"forge"
HOME
"/home/forge"
HTTP_REFERER
"https://dev.londonpacific.staging.poundandgrain.ca/category/quarterly-report"
HTTP_ACCEPT_ENCODING
"gzip, br, zstd, deflate"
HTTP_USER_AGENT
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
HTTP_ACCEPT
"*/*"
HTTP_HOST
"dev.londonpacific.staging.poundandgrain.ca"
REDIRECT_STATUS
"200"
HTTPS
"on"
SERVER_NAME
"dev.londonpacific.staging.poundandgrain.ca"
SERVER_PORT
"443"
SERVER_ADDR
"10.0.1.36"
REMOTE_PORT
"20489"
REMOTE_ADDR
"216.73.216.116"
GATEWAY_INTERFACE
"CGI/1.1"
SERVER_PROTOCOL
"HTTP/2.0"
DOCUMENT_ROOT
"/home/forge/dev.londonpacific.staging.poundandgrain.ca/current/web"
DOCUMENT_URI
"/index.php"
SCRIPT_NAME
"/index.php"
SCRIPT_FILENAME
"/home/forge/dev.londonpacific.staging.poundandgrain.ca/current/web/index.php"
CONTENT_LENGTH
""
CONTENT_TYPE
""
REQUEST_METHOD
"GET"
QUERY_STRING
""
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1758089252.1242
REQUEST_TIME
1758089252
DB_NAME
"LONDONPACIFIC_STAGING"
DB_USER
"***********************"
DB_PASSWORD
"*********************"
DB_HOST
"localhost"
DB_PORT
"3306"
WP_ENV
"development"
WP_HOME
"https://dev.londonpacific.staging.poundandgrain.ca"
WP_SITEURL
"https://dev.londonpacific.staging.poundandgrain.ca/wp"
WP_DEBUG_LOG
"/storage/debug.log"
AUTH_KEY
"****************************************************************"
SECURE_AUTH_KEY
"****************************************************************"
LOGGED_IN_KEY
"****************************************************************"
NONCE_KEY
"****************************************************************"
AUTH_SALT
"****************************************************************"
SECURE_AUTH_SALT
"****************************************************************"
LOGGED_IN_SALT
"****************************************************************"
NONCE_SALT
"****************************************************************"
ACF_PRO_KEY
"b3JkZXJfaWQ9NDQxMjV8dHlwZT1kZXZlbG9wZXJ8ZGF0ZT0yMDE0LTExLTEyIDA2OjA0OjE3"
CHIMPMATIC_KEY
"lGZ0btIYSt4dk8op&hexpires=1622579217"
Key Value
DB_NAME
"LONDONPACIFIC_STAGING"
DB_USER
"***********************"
DB_PASSWORD
"*********************"
DB_HOST
"localhost"
DB_PORT
"3306"
WP_ENV
"development"
WP_HOME
"https://dev.londonpacific.staging.poundandgrain.ca"
WP_SITEURL
"https://dev.londonpacific.staging.poundandgrain.ca/wp"
WP_DEBUG_LOG
"/storage/debug.log"
AUTH_KEY
"****************************************************************"
SECURE_AUTH_KEY
"****************************************************************"
LOGGED_IN_KEY
"****************************************************************"
NONCE_KEY
"****************************************************************"
AUTH_SALT
"****************************************************************"
SECURE_AUTH_SALT
"****************************************************************"
LOGGED_IN_SALT
"****************************************************************"
NONCE_SALT
"****************************************************************"
ACF_PRO_KEY
"b3JkZXJfaWQ9NDQxMjV8dHlwZT1kZXZlbG9wZXJ8ZGF0ZT0yMDE0LTExLTEyIDA2OjA0OjE3"
CHIMPMATIC_KEY
"lGZ0btIYSt4dk8op&hexpires=1622579217"
0. Roots\Acorn\Exceptions\Handler\PrettyPageHandler