Phalcon Framework 4.1.2

Error: Call to a member function getUri() on null

/websites/rabatt-aktionen.de/cache/volt/Tmpl_Site_PhalCMS_Post_Show.volt.php (40)
#0unknown
#1Phalcon\Mvc\View\Engine\Volt->render
#2Phalcon\Mvc\View->engineRender
#3Phalcon\Mvc\View->processRender
#4Phalcon\Mvc\View->render
#5Phalcon\Mvc\Application->handle
/websites/rabatt-aktionen.de/src/app/Lib/CmsApplication.php (117)
<?php
 
namespace CLSystems\PhalCMS\Lib;
 
use Phalcon\Loader;
use Phalcon\Http\Response;
use Phalcon\Events\Event;
use Phalcon\Mvc\Application;
use Phalcon\Mvc\Dispatcher;
use Phalcon\Mvc\View;
use CLSystems\PhalCMS\Lib\Helper\Asset;
use CLSystems\PhalCMS\Lib\Helper\Config;
use CLSystems\PhalCMS\Lib\Helper\Uri;
use CLSystems\PhalCMS\Lib\Helper\State;
use CLSystems\PhalCMS\Lib\Helper\User;
use CLSystems\PhalCMS\Lib\Helper\Event as EventHelper;
use CLSystems\PhalCMS\Lib\Mvc\View\ViewBase;
use CLSystems\Php\Registry;
use MatthiasMullie\Minify;
use Exception;
 
class CmsApplication extends Application
{
    public function execute()
    {
        try {
            $eventsManager = $this->di->getShared('eventsManager');
            $eventsManager->attach('application:beforeSendResponse', $this);
            $plugins = EventHelper::getPlugins();
            $systemEvents = [
                'application:beforeSendResponse',
                'dispatch:beforeExecuteRoute',
                'dispatch:beforeException',
                'dispatch:beforeDispatch',
                'dispatch:afterDispatch',
                'dispatch:afterInitialize',
            ];
 
            foreach ($plugins['System'] as $className => $config) {
                $handler = EventHelper::getHandler($className, $config);
 
                foreach ($systemEvents as $systemEvent) {
                    $eventsManager->attach($systemEvent, $handler);
                }
            }
 
            // Update view dirs
            define('TPL_SITE_PATH', APP_PATH . '/Tmpl/Site/' . Config::get('siteTemplate', 'PhalCMS'));
            define('TPL_ADMINISTRATOR_PATH', APP_PATH . '/Tmpl/Administrator');
            define('TPL_SYSTEM_PATH', APP_PATH . '/Tmpl/System');
 
            if (Uri::isClient('site')) {
                $viewDirs = [
                    TPL_SITE_PATH . '/Tmpl/',
                    TPL_SITE_PATH . '/',
                ];
            } else {
                $viewDirs = [
                    TPL_ADMINISTRATOR_PATH . '/',
                ];
            }
 
            foreach (['System', 'Cms'] as $plgGroup) {
                if (isset($plugins[$plgGroup])) {
                    /**
                     * @var string $pluginClass
                     * @var Registry $pluginConfig
                     */
 
 
                    foreach ($plugins[$plgGroup] as $pluginClass => $pluginConfig) {
                        $pluginName = $pluginConfig->get('manifest.name');
                        $pluginPath = PLUGIN_PATH . '/' . $plgGroup . '/' . $pluginName;
                        $psrPaths = [];
 
                        if (is_dir($pluginPath . '/Tmpl')) {
                            $viewDirs[] = $pluginPath . '/Tmpl/';
                        }
 
                        if (is_dir($pluginPath . '/Lib')) {
                            $psrPaths['CLSystems\\PhalCMS\\Lib'] = $pluginPath . '/Lib';
                        }
 
                        if (is_dir($pluginPath . '/Widget')) {
                            $psrPaths['CLSystems\\PhalCMS\\Widget'] = $pluginPath . '/Widget';
                        }
 
                        if ($psrPaths) {
                            (new Loader)
                                ->registerNamespaces($psrPaths, true)
                                ->register();
                        }
                    }
                }
            }
 
            $viewDirs[] = TPL_SYSTEM_PATH . '/';
 
            /** @var ViewBase $view */
            $view = $this->di->getShared('view');
            $requestUri = $_SERVER['REQUEST_URI'];
 
            if (Config::get('siteOffline') === 'Y'
                && !User::getInstance()->access('super')
            ) {
                $this->view->setMainView('Offline/Index');
 
                if (strpos($requestUri, '/user/') !== 0) {
                    $requestUri = '';
                }
            } else {
                $view->setMainView('Index');
            }
 
            $view->setViewsDir($viewDirs);
            $this->setEventsManager($eventsManager);
            $this->handle($requestUri)->send();
        } catch (Exception $e) {
            if (true === DEVELOPMENT_MODE) {
                // Let Phalcon Debug catch this
                throw $e;
            }
 
            try {
                if (User::getInstance()->access('super')) {
                    State::setMark('exception', $e);
                }
 
                /**
                 * @var Dispatcher $dispatcher
                 * @var View $view
                 */
                $dispatcher = $this->getDI()->getShared('dispatcher');
                $dispatcher->setControllerName(Uri::isClient('administrator') ? 'admin_error' : 'error');
                $dispatcher->setActionName('show');
                $dispatcher->setParams(
                    [
                        'code'    => $e->getCode(),
                        'message' => $e->getMessage(),
                    ]
                );
 
                $view = $this->getDI()->getShared('view');
                $view->start();
                $dispatcher->dispatch();
                $view->render(
                    $dispatcher->getControllerName(),
                    $dispatcher->getActionName(),
                    $dispatcher->getParams()
                );
                $view->finish();
                echo $view->getContent();
            } catch (Exception $e2) {
                debugVar($e2->getMessage());
            }
        }
    }
 
    protected function getCompressor($type)
    {
        if ('css' === $type) {
            $compressor = new Minify\CSS;
            $compressor->setImportExtensions(
                [
                    'gif' => 'data:image/gif',
                    'png' => 'data:image/png',
                    'svg' => 'data:image/svg+xml',
                ]
            );
        } else {
            $compressor = new Minify\JS;
        }
 
        return $compressor;
    }
 
    protected function compressAssets()
    {
        $basePath = PUBLIC_PATH . '/assets';
        $assets = Factory::getService('assets');
 
        foreach (Asset::getFiles() as $type => $files) {
            $fileName = md5(implode(':', $files)) . '.' . $type;
            $filePath = $basePath . '/compressed/' . $fileName;
            $fileUri = DOMAIN . '/assets/compressed/' . $fileName . (DEVELOPMENT_MODE ? '?' . time() : '');
            $hasAsset = is_file($filePath);
            $ucType = ucfirst($type);
            $addFunc = 'add' . $ucType;
 
            if ($hasAsset && !DEVELOPMENT_MODE) {
                call_user_func_array([$assets, $addFunc], [$fileUri, false]);
                continue;
            }
 
            $compressor = self::getCompressor($type);
 
            foreach ($files as $file) {
                $compressor->add($file);
            }
 
            if (!is_dir($basePath . '/compressed/')) {
                mkdir($basePath . '/compressed/', 0777, true);
            }
 
            if ($compressor->minify($filePath)) {
                chmod($filePath, 0777);
                call_user_func_array([$assets, $addFunc], [$fileUri, false]);
            }
 
            unset($compressor);
        }
    }
 
    public function beforeSendResponse(Event $event, CmsApplication $app, Response $response)
    {
        $request = $this->di->getShared('request');
 
        if ($request->isAjax()) {
            return;
        }
 
        /** @var Asset $assets */
        $this->compressAssets();
        $assets = $this->di->getShared('assets');
 
        // Compress CSS
        ob_start();
        $assets->outputCss();
        $assets->outputInlineCss();
        $content = str_replace('</head>', ob_get_clean() . '</head>', $response->getContent());
 
        // Compress JS
        ob_start();
        $assets->outputJs();
        $assets->outputInlineJs();
        $code = Asset::getCode() . ob_get_clean();
 
        // Extra code (in the footer)
        $content = str_replace('</body>', $code . '</body>', $content);
        $response->setContent($content);
    }
}
#6CLSystems\PhalCMS\Lib\CmsApplication->execute
/websites/rabatt-aktionen.de/public/index.php (14)
<?php
declare(strict_types=1);
 
error_reporting(E_ALL);
ini_set('display_errors', 'true');
 
use CLSystems\PhalCMS\Lib\Factory;
 
define('BASE_PATH', dirname(__DIR__));
 
require_once BASE_PATH . '/src/app/Lib/Factory.php';
 
// Execute application
Factory::getApplication()->execute();
KeyValue
_url/marken/vdgarde-rabatt-sonderangebot
KeyValue
PHP_FCGI_MAX_REQUESTS5000
PHPRC/etc/php/7.4/cgi/
PWD/var/www/php-fcgi-scripts/web13
TMPDIR/var/www/clients/client1/web13/tmp
TEMP/var/www/clients/client1/web13/tmp
SHLVL0
TMP/var/www/clients/client1/web13/tmp
PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PHP_DOCUMENT_ROOT/var/www/clients/client1/web13
CONTENT_LENGTH0
HTTP_CONNECTIONclose
SCRIPT_NAME/index.php
REQUEST_URI/marken/vdgarde-rabatt-sonderangebot
QUERY_STRING_url=/marken/vdgarde-rabatt-sonderangebot
REQUEST_METHODGET
SERVER_PROTOCOLHTTP/2.0
GATEWAY_INTERFACECGI/1.1
REDIRECT_QUERY_STRING_url=/marken/vdgarde-rabatt-sonderangebot
REDIRECT_URL/marken/vdgarde-rabatt-sonderangebot
REMOTE_PORT32925
SCRIPT_FILENAME/var/www/rabatt-aktionen.de/web/index.php
SERVER_ADMINwebmaster@rabatt-aktionen.de
CONTEXT_DOCUMENT_ROOT/var/www/rabatt-aktionen.de/web
CONTEXT_PREFIX
REQUEST_SCHEMEhttps
DOCUMENT_ROOT/var/www/rabatt-aktionen.de/web
REMOTE_ADDR13.59.36.203
SERVER_PORT443
SERVER_ADDR213.136.69.179
SERVER_NAMErabatt-aktionen.de
SERVER_SOFTWAREApache
SERVER_SIGNATURE
HTTP_HOSTrabatt-aktionen.de
HTTP_USER_AGENTMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HTTP_ACCEPT*/*
SSL_TLS_SNIrabatt-aktionen.de
HTTPSon
H2_STREAM_TAG3518999-139-1
H2_STREAM_ID1
H2_PUSHED_ON
H2_PUSHED
H2_PUSHoff
H2PUSHoff
HTTP2on
REDIRECT_STATUS200
REDIRECT_SSL_TLS_SNIrabatt-aktionen.de
REDIRECT_HTTPSon
REDIRECT_H2_STREAM_TAG3518999-139-1
REDIRECT_H2_STREAM_ID1
REDIRECT_H2_PUSHED_ON
REDIRECT_H2_PUSHED
REDIRECT_H2_PUSHoff
REDIRECT_H2PUSHoff
REDIRECT_HTTP2on
FCGI_ROLERESPONDER
PHP_SELF/index.php
REQUEST_TIME_FLOAT1714345551.9561
REQUEST_TIME1714345551
#Path
0/websites/rabatt-aktionen.de/public/index.php
1/websites/rabatt-aktionen.de/src/app/Lib/Factory.php
2/websites/rabatt-aktionen.de/src/app/Config/Define.php
3/websites/rabatt-aktionen.de/src/app/Config/Loader.php
4/websites/rabatt-aktionen.de/vendor/autoload.php
5/websites/rabatt-aktionen.de/vendor/composer/autoload_real.php
6/websites/rabatt-aktionen.de/vendor/composer/platform_check.php
7/websites/rabatt-aktionen.de/vendor/composer/ClassLoader.php
8/websites/rabatt-aktionen.de/vendor/composer/autoload_static.php
9/websites/rabatt-aktionen.de/vendor/symfony/polyfill-ctype/bootstrap.php
10/websites/rabatt-aktionen.de/vendor/ralouphie/getallheaders/src/getallheaders.php
11/websites/rabatt-aktionen.de/vendor/symfony/polyfill-php80/bootstrap.php
12/websites/rabatt-aktionen.de/vendor/guzzlehttp/psr7/src/functions_include.php
13/websites/rabatt-aktionen.de/vendor/guzzlehttp/psr7/src/functions.php
14/websites/rabatt-aktionen.de/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php
15/websites/rabatt-aktionen.de/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php
16/websites/rabatt-aktionen.de/vendor/symfony/deprecation-contracts/function.php
17/websites/rabatt-aktionen.de/vendor/symfony/polyfill-mbstring/bootstrap.php
18/websites/rabatt-aktionen.de/vendor/guzzlehttp/promises/src/functions_include.php
19/websites/rabatt-aktionen.de/vendor/guzzlehttp/promises/src/functions.php
20/websites/rabatt-aktionen.de/vendor/symfony/polyfill-intl-grapheme/bootstrap.php
21/websites/rabatt-aktionen.de/vendor/symfony/polyfill-intl-normalizer/bootstrap.php
22/websites/rabatt-aktionen.de/vendor/guzzlehttp/guzzle/src/functions_include.php
23/websites/rabatt-aktionen.de/vendor/guzzlehttp/guzzle/src/functions.php
24/websites/rabatt-aktionen.de/vendor/symfony/polyfill-php73/bootstrap.php
25/websites/rabatt-aktionen.de/vendor/symfony/string/Resources/functions.php
26/websites/rabatt-aktionen.de/vendor/google/apiclient-services/autoload.php
27/websites/rabatt-aktionen.de/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php
28/websites/rabatt-aktionen.de/vendor/facebook/graph-sdk/src/Facebook/polyfills.php
29/websites/rabatt-aktionen.de/vendor/google/apiclient/src/aliases.php
30/websites/rabatt-aktionen.de/vendor/google/apiclient/src/Client.php
31/websites/rabatt-aktionen.de/vendor/google/apiclient/src/Service.php
32/websites/rabatt-aktionen.de/vendor/google/apiclient/src/AccessToken/Revoke.php
33/websites/rabatt-aktionen.de/vendor/google/apiclient/src/AccessToken/Verify.php
34/websites/rabatt-aktionen.de/vendor/google/apiclient/src/Model.php
35/websites/rabatt-aktionen.de/vendor/google/apiclient/src/Utils/UriTemplate.php
36/websites/rabatt-aktionen.de/vendor/google/apiclient/src/AuthHandler/Guzzle6AuthHandler.php
37/websites/rabatt-aktionen.de/vendor/google/apiclient/src/AuthHandler/Guzzle7AuthHandler.php
38/websites/rabatt-aktionen.de/vendor/google/apiclient/src/AuthHandler/Guzzle5AuthHandler.php
39/websites/rabatt-aktionen.de/vendor/google/apiclient/src/AuthHandler/AuthHandlerFactory.php
40/websites/rabatt-aktionen.de/vendor/google/apiclient/src/Http/Batch.php
41/websites/rabatt-aktionen.de/vendor/google/apiclient/src/Http/MediaFileUpload.php
42/websites/rabatt-aktionen.de/vendor/google/apiclient/src/Http/REST.php
43/websites/rabatt-aktionen.de/vendor/google/apiclient/src/Task/Retryable.php
44/websites/rabatt-aktionen.de/vendor/google/apiclient/src/Task/Exception.php
45/websites/rabatt-aktionen.de/vendor/google/apiclient/src/Exception.php
46/websites/rabatt-aktionen.de/vendor/google/apiclient/src/Task/Runner.php
47/websites/rabatt-aktionen.de/vendor/google/apiclient/src/Collection.php
48/websites/rabatt-aktionen.de/vendor/google/apiclient/src/Service/Exception.php
49/websites/rabatt-aktionen.de/vendor/google/apiclient/src/Service/Resource.php
50/websites/rabatt-aktionen.de/vendor/google/apiclient/src/Task/Composer.php
51/websites/rabatt-aktionen.de/vendor/phalcon/dd/src/helper.php
52/websites/rabatt-aktionen.de/vendor/clsystems/php-registry/src/Registry.php
53/websites/rabatt-aktionen.de/src/app/Lib/Helper/Config.php
54/websites/rabatt-aktionen.de/src/app/Lib/Helper/Asset.php
55/websites/rabatt-aktionen.de/src/app/Lib/Mvc/View/ViewBase.php
56/websites/rabatt-aktionen.de/src/app/Lib/Helper/Volt.php
57/websites/rabatt-aktionen.de/src/app/Lib/CmsApplication.php
58/websites/rabatt-aktionen.de/src/app/Lib/Helper/Language.php
59/websites/rabatt-aktionen.de/src/app/Lib/Helper/FileSystem.php
60/websites/rabatt-aktionen.de/src/app/Language/de-DE/Locale.php
61/websites/rabatt-aktionen.de/src/app/Language/en-GB/Locale.php
62/websites/rabatt-aktionen.de/src/app/Language/nl-NL/Locale.php
63/websites/rabatt-aktionen.de/src/app/Lib/Helper/Uri.php
64/websites/rabatt-aktionen.de/src/app/Language/de-DE/de-DE.php
65/websites/rabatt-aktionen.de/src/app/Lib/Helper/Event.php
66/websites/rabatt-aktionen.de/src/app/Lib/Mvc/Model/Config.php
67/websites/rabatt-aktionen.de/src/app/Lib/Mvc/Model/ModelBase.php
68/websites/rabatt-aktionen.de/src/app/Plugin/Cms/OutLink/OutLink.php
69/websites/rabatt-aktionen.de/src/app/Lib/Plugin.php
70/websites/rabatt-aktionen.de/src/app/Plugin/Cms/SiteMap/SiteMap.php
71/websites/rabatt-aktionen.de/src/app/Plugin/Cms/SocialLogin/SocialLogin.php
72/websites/rabatt-aktionen.de/src/app/Plugin/System/Backup/Backup.php
73/websites/rabatt-aktionen.de/src/app/Plugin/System/Cms/Cms.php
74/websites/rabatt-aktionen.de/src/app/Config/Router.php
75/websites/rabatt-aktionen.de/src/app/Config/Router/Site.php
76/websites/rabatt-aktionen.de/src/app/Lib/Mvc/Controller/DisplayController.php
77/websites/rabatt-aktionen.de/src/app/Lib/Mvc/Controller/ControllerBase.php
78/websites/rabatt-aktionen.de/src/app/Lib/Helper/User.php
79/websites/rabatt-aktionen.de/src/app/Lib/Helper/State.php
80/websites/rabatt-aktionen.de/src/app/Lib/Mvc/Model/User.php
81/websites/rabatt-aktionen.de/src/app/Lib/Mvc/Model/UcmItem.php
82/websites/rabatt-aktionen.de/src/app/Lib/Helper/UcmItem.php
83/websites/rabatt-aktionen.de/src/app/Lib/Mvc/Model/Post.php
84/websites/rabatt-aktionen.de/src/app/Lib/Helper/Text.php
85/websites/rabatt-aktionen.de/src/app/Lib/Mvc/Model/PostCategory.php
86/websites/rabatt-aktionen.de/src/app/Lib/Mvc/Model/Nested.php
87/websites/rabatt-aktionen.de/cache/volt/Tmpl_Site_PhalCMS_Post_Show.volt.php
88/websites/rabatt-aktionen.de/cache/volt/Tmpl_System_Breadcrumb_Breadcrumb.volt.php
89/websites/rabatt-aktionen.de/src/app/Lib/Helper/IconSvg.php
90/websites/rabatt-aktionen.de/src/app/Lib/Helper/Image.php
91/websites/rabatt-aktionen.de/src/app/Lib/Mvc/Model/Rating.php
Memory
Usage2097152