Phalcon Framework 3.4.4

Phalcon\Di\Exception: Service 'messages' wasn't found in the dependency injection container

/var/www/pencompany/apps/api/application/Plugin/ErrorHandler.php (31)
#0Phalcon\Di->get(messages)
/var/www/pencompany/apps/api/application/Plugin/ErrorHandler.php (31)
<?php
 
namespace Api\Application\Plugin;
 
use Api\Application\Cache\Keys;
use Api\Application\Cache\Manager;
use Api\Application\Exception\ApiException;
use Api\Application\Exception\PaymentException;
use Api\Application\Exception\ShippingMethodException;
use Model\SiteLang;
use Phalcon\Db\Adapter;
use Phalcon\Http\Response;
use Phalcon\Mvc\User\Plugin;
 
class ErrorHandler extends Plugin
{
    public function handle(\Throwable $exception)
    {
        // Rollback open transactions
        $this->closeOpenTransaction();
 
        // log message
        $this->log($exception->getMessage());
 
        // get requested site
        $siteID = defined('SITE_ID') ? constant('SITE_ID') : null;
        // search phone number for the site
        $phone = $this->getSitePhone($siteID);
 
        // Prepare response massage
        $messages = $this->getDI()->get('messages');
        $error = $messages->t('DEFAULT_MESSAGE_OF_EXCEPTION', ['phone' => $phone]);
 
        if ($exception instanceof ApiException) {
            $error = $exception->decodeMessages();
        } else if ($exception instanceof ShippingMethodException) {
            $error = $exception->getMessage();
        } else if ($exception instanceof PaymentException) {
            // send exception to the Sentry
            if (SENTRY_ENABLED) {
                \Sentry\captureException($exception);
            }
 
            $error = $exception->getMessage();
        } else {
            // send exception to the Sentry
            if (
                SENTRY_ENABLED
                && $exception->getMessage() !== 'Authentication is incorrect. Site ID required'
            ) {
                \Sentry\captureException($exception);
            }
 
            if (APPLICATION_ENV !== 'production') {
                $error = $exception->getMessage();
            }
        }
 
        $response = new Response();
 
        $response->setJsonContent(['error' => $error]);
        $response->setStatusCode(403);
        $response->send();
 
        return false;
    }
 
    private function closeOpenTransaction()
    {
        /** @var Adapter $db */
        $db = $this->getDI()->get('db');
        if ($db->isUnderTransaction()) {
 
            // Rollback transaction
            $db->rollback();
        }
    }
 
    private function log(string $message): void
    {
        /** @var \Core\Service\Logger\AdapterInterface $logger */
        $logger = $this->getDI()->get('log');
        $logger->setKeyMessage(\Core\Service\Logger\Key::GENERAL_ERROR);
        $logger->warning($message);
    }
 
    private function getSitePhone(?int $siteID): string
    {
        $defPhone = '+44 (0)1438 880 758';
        if ($siteID === null) {
            return $defPhone;
        }
 
        /** @var Manager $cacheManager */
        $cacheManager = $this->getDI()->get('cacheManager');
        [$key, $ttl] = Keys::getKeyTtl(Keys::SITE_PHONE);
 
        // search site phone
        $result = $cacheManager->load(
            [$key, $siteID],
            static function() use($siteID) {
                /** @var SiteLang $model */
                $model = SiteLang::query()
                    ->where('foreign_id = :site:', ['site' => $siteID])
                    ->andWhere('lang_id = :lang:', ['lang' => LANG_ID])
                    ->execute()->getFirst();
 
                if ($model) {
                    return $model->getPhone();
                }
 
                return null;
            },
            $ttl
        );
 
        // check specified phone number for the site
        if ($result === null) {
            return $defPhone;
        }
 
        return $result;
    }
}
#1Api\Application\Plugin\ErrorHandler->handle(Object(Exception))
/var/www/pencompany/apps/api/Application.php (248)
<?php
 
namespace Api;
 
use Api\Application\Middleware\BasketListener;
use Api\Application\Middleware\JwtMiddleware;
use Api\Application\Middleware\LangCheckMiddleware;
use Api\Application\Middleware\NotFoundMiddleware;
use Api\Application\Middleware\ProfilerMiddleware;
use Api\Application\Middleware\ResponseMiddleware;
use Api\Application\Plugin\ErrorHandler;
use Api\Application\Service\BarcodeService;
use Api\Application\Service\CountryService;
use Api\Application\Service\CurrencyService;
use Api\Application\Service\JwtService;
use Core\Service\Language;
use Core\Service\ProductPriceService;
use Core\Service\TranslationsService;
use Phalcon\Config;
use Phalcon\Events\Manager;
use Phalcon\Translate\Adapter\NativeArray;
 
class Application extends \Phalcon\Mvc\Micro
{
    public function run($config)
    {
        $di = new \Phalcon\DI\FactoryDefault();
 
        // init Sentry
        if (SENTRY_ENABLED) {
            \Sentry\init([
                'dsn'         => 'https://[email protected]/1550222',
                'release'     => 'v1.0',
                'error_types' => E_ALL & ~E_DEPRECATED,
            ]);
 
            \Sentry\configureScope(function (\Sentry\State\Scope $scope): void {
//                $scope->setExtra('headers', getallheaders());
                $scope->setExtra('request', $_REQUEST);
//                $scope->setLevel(\Sentry\Severity::warning());
                $scope->setTag('app_env', APPLICATION_ENV);
                $scope->setTag('app', 'api');
            });
        }
 
        // define default scale param for the bcmatch functions
        bcscale(32);
 
        // start application time
        $startTime = microtime(true);
 
        // create registry
        $registry = new \Phalcon\Registry();
 
        // list of URLs which is allowed without jwt auth
        $registry->publicURLs = [
            '/service/images-without-watermark',
        ];
        $di->setShared('registry', $registry);
 
        // config
        $appConfig = new Config($config);
        $di->setShared('appConfig', $appConfig);
 
        // system and core services
        $configServices = require BASE_PATH . '/config/services.php';
 
        // local services
        $localServices = [
            // set cache manager
            'cacheManager' => Application\Cache\Manager::class,
            // useful functions
            'helper' => Application\Helper::class,
            // JWT service
            'jwt' => JwtService::class,
            // currency service
            'currency' => CurrencyService::class,
            'barcodeService' => BarcodeService::class,
            // price service (using for a page with price filtering)
            'priceService' => ProductPriceService::class,
        ];
 
        $serviceLoader = new \Core\Service\Loader(
            array_merge($configServices, $localServices),
            $di
        );
        $di->set('serviceLoader', $serviceLoader, true);
 
        $appConfig = $di->get('appConfig');
 
        \define('IMAGES_SERVER', $appConfig->get('IMAGE_SERVER'));
        \define('STATIC_SERVER', $appConfig->get('STATIC_SERVER'));
 
        // define VAT
        \define('VAT', $config['VAT'] ?? 20);
 
        $this->setDI($di);
 
        /** @var Manager $eventsManager */
        $eventsManager = $di->get('eventsManager');
 
        // middleware
        $eventsManager->attach('micro', new JwtMiddleware());
        $eventsManager->attach('micro', new NotFoundMiddleware());
        $eventsManager->attach('micro', new LangCheckMiddleware());
        $eventsManager->attach('micro', new ProfilerMiddleware());
 
        // make events manager is in the DI container now
        $this->setEventsManager($eventsManager);
 
        // mount collections
        $routes = new Routes($this);
        $routes->addRoute(Index\Router::class);
        $routes->addRoute(Catalogue\Router::class);
        $routes->addRoute(Product\Router::class);
        $routes->addRoute(Service\Router::class);
        $routes->addRoute(Site\Router::class);
        $routes->addRoute(Basket\Router::class);
        $routes->addRoute(Pages\Router::class);
        $routes->addRoute(Checkout\Router::class);
 
        // mount all handlers
        $routes->mount();
 
        // define lang
        $this->before(function() use($di) {
            /** @var Language $langService */
            $langService = $di->get('language');
 
            $jwtService = $this->getDI()->get('jwt');
            if ($jwtService->isDefined()) {
                $countryID = $jwtService->getCountryID();
 
                $lang   = $langService->getLangByCountryId($countryID);
                $langID = $langService->getLangID($lang);
 
                \define('LANG', $lang);
                \define('LANG_ID', $langID);
 
            } else {
                $defaultLang = Language::DEFAULT_LANG;
                $langID = $langService->getLangID($defaultLang);
 
                \define('LANG', $defaultLang);
                \define('LANG_ID', $langID);
 
            }
 
            // additional params for Sentry
            if (SENTRY_ENABLED) {
                \Sentry\configureScope(function (\Sentry\State\Scope $scope): void {
                    $scope->setTag('langID', LANG_ID);
                });
            }
 
            $langParam = LANG;
            $di->setShared('messages', function () use ($langParam) {
                // $messages = require './messages/en.php';
                $translationsService = new TranslationsService();
                $translationObject = $translationsService->getApiTranslateMessages($langParam);
 
                // Return a translation object
                return $translationObject;
            });
 
        });
 
        // define site id
        $this->before(function() {
            /** @var \Api\Application\Service\JwtService $jwtService */
            $jwtService = $this->getDI()->get('jwt');
            if ($jwtService->isDefined()) {
                $siteID = $jwtService->getSite();
 
                \define('SITE_ID', $siteID);
 
                // additional params for Sentry
                if (SENTRY_ENABLED) {
                    \Sentry\configureScope(function (\Sentry\State\Scope $scope): void {
                        $scope->setTag('siteID', SITE_ID);
                    });
                }
            } else {
                \define('SITE_ID', \Model\Site::PENCOMPANY_SITE);
            }
        });
 
        // define include VAT for price or not
        $this->before(function() {
            /** @var \Api\Application\Service\JwtService $jwtService */
            $jwtService = $this->getDI()->get('jwt');
            if ($jwtService->isDefined()) {
                $countryID = $jwtService->getCountryID();
 
                $countryService = new CountryService();
                $vat = $countryService->includeVat($countryID);
 
                /** @var ProductPriceService $priceService */
                $priceService = $this->getDI()->get('priceService');
                $priceService->setWithVat($vat);
            }
        });
 
        // add headers with response time (non for production)
        $this->after(function() use($startTime) {
            if (APPLICATION_ENV !== 'production') {
                $t = microtime(true) - $startTime;
                $this->response->setHeader('X-ResponseTime', $t);
            }
        });
 
        // Middleware after the route is executed
        $this->after(new ResponseMiddleware());
 
        // change filters
        // add a filter to skip encoding for quotes
        $di->setShared('filter', function () {
 
            $filter = new \Phalcon\Filter();
 
            $filter->add('estring', function ($value) {
                return filter_var(
                    $value,
                    FILTER_SANITIZE_STRING,
                    [
                        'flags' => FILTER_FLAG_NO_ENCODE_QUOTES,
                    ]
                );
            });
 
            return $filter;
 
        });
 
        // add my eventManager
        /** @var \Core\Service\EventService $eventService */
        $eventService = $this->getDI()->get('eventService');
        $eventManager = $eventService->getEventsManager();
 
        // attach listeners
        $eventManager->attach('basket', new BasketListener());
 
        // handle app
        try {
            $this->handle();
        } catch (\Throwable $e) {
            $handler = new ErrorHandler();
            $handler->handle($e);
        }
    }
}
#2Api\Application->run(Array([api_allowed_frontends] => Array(11), [api-auth-token] => Array([MzunVAd6byBW6Dw8ncxUDMnq9GQB535CsYw5TGKC4If98iMJxGj] => 3)))
/var/www/pencompany/apps/api/web/index.php (38)
<?php
chdir(dirname(__DIR__));
 
define('BASE_PATH', __DIR__ . '/../../../');
define('APPLICATION_PATH', __DIR__ . '/../../api');
define('WEB_PATH', __DIR__);
 
// Autoloader for Composer packages
require_once BASE_PATH . '/vendor/autoload.php';
 
$dotenv = new Dotenv\Dotenv(BASE_PATH);
$dotenv->load();
 
\defined('APPLICATION_ENV') ||
    \define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
 
\defined('CACHE_ENABLED') ||
    \define('CACHE_ENABLED', (array_key_exists('CACHE_ENABLED', $_ENV) ? (int)getenv('CACHE_ENABLED') : 1));
 
\defined('ENGRAVING_ENABLED') ||
    \define('ENGRAVING_ENABLED', (array_key_exists('ENGRAVING_ENABLED', $_ENV) ? (int)getenv('ENGRAVING_ENABLED') : 1));
 
\defined('SENTRY_ENABLED') ||
    \define('SENTRY_ENABLED', (array_key_exists('SENTRY_ENABLED', $_ENV) ? (int)getenv('SENTRY_ENABLED') : 0));
 
\defined('OUTPUT_TIMEZONE')
    || \define('OUTPUT_TIMEZONE', (array_key_exists('OUTPUT_TIMEZONE', $_ENV) ? getenv('OUTPUT_TIMEZONE') : 'Europe/London'));
 
//Debug
if (APPLICATION_ENV !== 'production') {
    $debug = new \Phalcon\Debug();
    $debug->listen();
}
 
// Application class
require_once APPLICATION_PATH . '/Application.php';
$app = new \Api\Application();
$app->run($_ENV);
KeyValue
_url/sitemap.xml
KeyValue
USERdeveloper
HOME/home/developer
HTTP_COOKIEPHPSESSID=ocngf401dtldguetqdkkjv8cod
HTTP_CF_IPCOUNTRYUS
HTTP_CF_CONNECTING_IP18.217.171.249
HTTP_CDN_LOOPcloudflare; loops=1
HTTP_X_FORWARDED_PROTOhttps
HTTP_CF_RAY93f8f2bf1821f851-LHR
HTTP_ACCEPT_ENCODINGgzip, br
HTTP_ACCEPT*/*
HTTP_USER_AGENTMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
HTTP_CF_VISITOR{"scheme":"https"}
HTTP_CONNECTIONclose
HTTP_HOST127.0.0.1:10308
HTTP_X_FORWARDED_FOR172.69.224.96
PATH_INFO
REDIRECT_STATUS200
SERVER_NAME
SERVER_PORT8088
SERVER_ADDR172.19.0.12
REMOTE_PORT40106
REMOTE_ADDR172.19.0.1
SERVER_SOFTWAREnginx/1.15.9
GATEWAY_INTERFACECGI/1.1
REQUEST_SCHEMEhttp
SERVER_PROTOCOLHTTP/1.0
DOCUMENT_ROOT/var/www/pencompany/apps/api/web
DOCUMENT_URI/index.php
REQUEST_URI/sitemap.xml
SCRIPT_NAME/index.php
CONTENT_LENGTH
CONTENT_TYPE
REQUEST_METHODGET
QUERY_STRING_url=/sitemap.xml
SCRIPT_FILENAME/var/www/pencompany/apps/api/web/index.php
FCGI_ROLERESPONDER
PHP_SELF/index.php
REQUEST_TIME_FLOAT1747210531.7385
REQUEST_TIME1747210531
APPLICATION_ENVstaging
NODE_ENVproduction
PHINX_ENVIRONMENTstaging
SESSION_ADAPTERredis
CACHE_ADAPTERredis
LOG_ADAPTERfile
CACHE_ENABLED1
ENGRAVING_ENABLED1
SENTRY_ENABLED0
ZPL_ENABLED0
MYSQL_HOSTmysql
MYSQL_DATABASEpencompany
MYSQL_USERdbuser
MYSQL_PASSWORDdbpass
MYSQL_PORT3306
MYSQL_CHARSETutf8mb4
LEGACY_MYSQL_HOSTmysql
LEGACY_MYSQL_DATABASEshop5
LEGACY_MYSQL_USERdbuser
LEGACY_MYSQL_PASSWORDdbpass
LEGACY_MYSQL_PORT3306
LEGACY_MYSQL_CHARSETutf8mb4
REDIS_HOSTredis
REDIS_PORT6379
REDIS_LIFETIME86000
REDIS_PERSISTENTRDB
REDIS_PREFIXpen
BEANSTALKD_HOSTbeanstalkd
BEANSTALKD_PORT11300
ELASTICSEARCH_HOSTelasticsearch
ELASTICSEARCH_PORT9200
EMAIL_HOSTsmtp.sendgrid.net
EMAIL_PORT587
EMAIL_SSLtls
EMAIL_USERapikey
EMAIL_PASSSG.2qXJxDrBTb6Ba0q4hd_PHQ.VPmXTpiJLxIRfKpzKdPqtzqyjDHReSTjEvaUIPfBEKQ
OUTPUT_TIMEZONEEurope/London
LOG_LEVEL7
IMAGE_SERVERhttps://images.pendev.co.uk
STATIC_SERVERhttps://dashboard.pendev.co.uk
API_SERVERhttps://api.pendev.co.uk
IMAGE_WATERMARK_APIhttps://api.pendev.co.uk/service/images-without-watermark
VAT20
JWT_EXPIRATION1209600
JWT_ISSUERhttps://api.pencompany.com
JWT_PRIVATE_KEYfile:///var/www/pencompany/config/private_key.pem
JWT_PUBLIC_KEYfile:///var/www/pencompany/config/public_key.pem
LEGACY_IMG_PATH/var/www/pencompany/tmp/images/
XHPROF_ENABLED0
XHPROF_PATH/var/www/xhprof/
CURRENCY_LAYER_API56c37488775ab82bc649860f0a55ffe1
OPENEXCHANGERATES_API_KEY176c0a7c8daf4aebaad9c8ab97c06d7f
STRIPE_SECRETsk_test_xIHxh71UeNiIuQHj5e9YKFZl00f3cwSAlI
STRIPE_PUBLICpk_test_Maol0OHEjGLYGRyC6da3TzN500bMlB7ulw
STRIPE_ENDPOINT_HANDLER_SECRETwhsec_JM0YJRmnKl2fpHBzuKK23PqSC8TZ2ygj
ROYAL_MAIL_API_OAUTH_BASE_URLhttps://authentication.proshipping.net
ROYAL_MAIL_API_URLhttps://api.proshipping.net
ROYAL_MAIL_API_CLIENT_ID2066C9E6A1449DF6710A673E8F9964F3
ROYAL_MAIL_API_CLIENT_SECRETAE76F66195AF1DB1C3CAAAA8225D27DAEC88976CE3969BBAFED2F785E49855F7
ROYAL_MAIL_API_GRANT_TYPEclient_credentials
ROYAL_MAIL_API_SHIPPING_ACCOUNT_IDPen Company SANDBOX
ROYAL_MAIL_API_SHIPPING_LOCATION_ID8415390a-d503-43b9-b95f-f9d64c0a96a3
IDEAL_POSTCODES_KEYak_if6w8yhmEVaHiOCzTOoVCiWmZPS5A
GOOGLE_MERCHANT_ID135132426
GOOGLE_APPLICATION_CREDENTIALS/var/www/pencompany/config/content-api-key.json
GOOGLE_RE_CAPTCHA_SECRET_KEY6LdJesQZAAAAAFMxNhahC-L9X3rbh4pceBeTC4JG
GOOGLE_RE_CAPTCHA_SITE_KEY6LdJesQZAAAAAIaJBg45j3majesRPReocOc_v4ZD
DEUTSCHE_POST_URLhttps://api-sandbox.dhl.com
DEUTSCHE_POST_USER_ID[email protected]
DEUTSCHE_POST_CLIENT_ID2d2daab2-6f95-4ba1-924e-289579286581
DEUTSCHE_POST_CLIENT_SECRETb20246d4-c5f6-4d35-8fa7-5f290051b612
DEUTSCHE_POST_EKP4211821581
FEDEX_API_URLhttps://apis-sandbox.fedex.com
FEDEX_DOCUMENT_API_URLhttps://documentapitest.prod.fedex.com
FEDEX_API_CLIENT_IDl738f11b572ecd4c60a3d0784158c59324
FEDEX_API_CLIENT_SECRETa80b28d2250d44e98c32dc8854c6c3f7
FEDEX_API_GRANT_TYPEclient_credentials
FEDEX_MAIN_ACCOUNT_NUMBER802255209
FEDEX_REGIONAL_ECONOMY_ACCOUNT_NUMBER802255209
FEDEX_ADDRESS_VALIDATION_API_URLhttps://apis.fedex.com
FEDEX_ADDRESS_VALIDATION_API_CLIENT_IDl71c8c92897e964fffb416ea5d6a146d36
FEDEX_ADDRESS_VALIDATION_API_CLIENT_SECRETd7fd5f14-e990-4f1b-a66a-fd7ed848feee
MEILISEARCH_HOSThttps://meilisearch.pendev.co.uk
MEILI_MASTER_KEYPJicrAZxNUYNCWHHfgMT7gQc
#Path
0/var/www/pencompany/apps/api/web/index.php
1/var/www/pencompany/vendor/autoload.php
2/var/www/pencompany/vendor/composer/autoload_real.php
3/var/www/pencompany/vendor/composer/platform_check.php
4/var/www/pencompany/vendor/composer/ClassLoader.php
5/var/www/pencompany/vendor/composer/autoload_static.php
6/var/www/pencompany/vendor/symfony/polyfill-ctype/bootstrap.php
7/var/www/pencompany/vendor/ralouphie/getallheaders/src/getallheaders.php
8/var/www/pencompany/vendor/symfony/polyfill-php80/bootstrap.php
9/var/www/pencompany/vendor/guzzlehttp/psr7/src/functions_include.php
10/var/www/pencompany/vendor/guzzlehttp/psr7/src/functions.php
11/var/www/pencompany/vendor/symfony/polyfill-php73/bootstrap.php
12/var/www/pencompany/vendor/guzzlehttp/promises/src/functions_include.php
13/var/www/pencompany/vendor/guzzlehttp/promises/src/functions.php
14/var/www/pencompany/vendor/symfony/polyfill-mbstring/bootstrap.php
15/var/www/pencompany/vendor/symfony/polyfill-intl-normalizer/bootstrap.php
16/var/www/pencompany/vendor/symfony/polyfill-php72/bootstrap.php
17/var/www/pencompany/vendor/clue/stream-filter/src/functions_include.php
18/var/www/pencompany/vendor/clue/stream-filter/src/functions.php
19/var/www/pencompany/vendor/react/promise/src/functions_include.php
20/var/www/pencompany/vendor/react/promise/src/functions.php
21/var/www/pencompany/vendor/symfony/deprecation-contracts/function.php
22/var/www/pencompany/vendor/symfony/polyfill-intl-idn/bootstrap.php
23/var/www/pencompany/vendor/php-http/message/src/filters.php
24/var/www/pencompany/vendor/swiftmailer/swiftmailer/lib/swift_required.php
25/var/www/pencompany/vendor/swiftmailer/swiftmailer/lib/classes/Swift.php
26/var/www/pencompany/vendor/guzzlehttp/guzzle/src/functions_include.php
27/var/www/pencompany/vendor/guzzlehttp/guzzle/src/functions.php
28/var/www/pencompany/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php
29/var/www/pencompany/vendor/symfony/polyfill-uuid/bootstrap.php
30/var/www/pencompany/vendor/sentry/sentry/src/functions.php
31/var/www/pencompany/vendor/vlucas/phpdotenv/src/Dotenv.php
32/var/www/pencompany/vendor/vlucas/phpdotenv/src/Loader.php
33/var/www/pencompany/apps/api/Application.php
34/var/www/pencompany/config/services.php
35/var/www/pencompany/config/config.php
36/var/www/pencompany/core/Service/Loader.php
37/var/www/pencompany/apps/api/application/Middleware/JwtMiddleware.php
38/var/www/pencompany/apps/api/application/Middleware/NotFoundMiddleware.php
39/var/www/pencompany/apps/api/application/Middleware/LangCheckMiddleware.php
40/var/www/pencompany/apps/api/application/Middleware/ProfilerMiddleware.php
41/var/www/pencompany/apps/api/Routes.php
42/var/www/pencompany/apps/api/modules/Index/Router.php
43/var/www/pencompany/apps/api/modules/Catalogue/Router.php
44/var/www/pencompany/apps/api/modules/Product/Router.php
45/var/www/pencompany/apps/api/modules/Service/Router.php
46/var/www/pencompany/apps/api/modules/Site/Router.php
47/var/www/pencompany/apps/api/modules/Basket/Router.php
48/var/www/pencompany/apps/api/modules/Pages/Router.php
49/var/www/pencompany/apps/api/modules/Checkout/Router.php
50/var/www/pencompany/apps/api/application/Middleware/ResponseMiddleware.php
51/var/www/pencompany/core/Service/EventService.php
52/var/www/pencompany/apps/api/application/Middleware/BasketListener.php
53/var/www/pencompany/apps/api/application/Service/JwtService.php
54/var/www/pencompany/vendor/lcobucci/jwt/src/Parser.php
55/var/www/pencompany/vendor/lcobucci/jwt/src/Parsing/Decoder.php
56/var/www/pencompany/vendor/lcobucci/jwt/src/Claim/Factory.php
57/var/www/pencompany/apps/api/application/Service/CountryService.php
58/var/www/pencompany/apps/api/application/Service/SiteService.php
59/var/www/pencompany/apps/api/application/Helper.php
60/var/www/pencompany/apps/api/application/Plugin/ErrorHandler.php
61/var/www/pencompany/core/Service/Logger/Adapter/File.php
62/var/www/pencompany/core/Service/Logger/AdapterInterface.php
63/var/www/pencompany/core/Service/Logger/Formatter/File.php
64/var/www/pencompany/core/Service/Logger/Key.php
Memory
Usage2097152