Phalcon Framework 3.4.4

PDOException: SQLSTATE[HY000] [2002] No such file or directory

/var/www/new.govern.hu/www/apps/Bootstrap.php (65)
#0PDO->__construct(mysql:host=localhost;port=3306;dbname=govern-soft_dev, govern-soft, n1tYHNWdq8ukzcq8, Array([1002] => SET NAMES utf8, [3] => 2))
#1Phalcon\Db\Adapter\Pdo->connect(Array([host] => localhost, [port] => 3306, [username] => govern-soft, [password] => n1tYHNWdq8ukzcq8, [dbname] => govern-soft_dev, [dialectClass] => MysqlExtended, [options] => Array([1002] => SET NAMES utf8, [3] => 1)))
#2Phalcon\Db\Adapter\Pdo->__construct(Array([host] => localhost, [port] => 3306, [username] => govern-soft, [password] => n1tYHNWdq8ukzcq8, [dbname] => govern-soft_dev, [dialectClass] => MysqlExtended, [options] => Array([1002] => SET NAMES utf8, [3] => 1)))
/var/www/new.govern.hu/www/apps/Bootstrap.php (65)
<?php
namespace App;
 
use Phalcon\Mvc\Router;
use Phalcon\Mvc\Application;
use Phalcon\Di\FactoryDefault;
use Phalcon\Mvc\Dispatcher;
use Phalcon\Loader;
use Phalcon\Mvc\View;
use Phalcon\Config;
use Phalcon\Events\Manager as EventsManager;
use Phalcon\Mvc\View\Engine\Volt;
use Phalcon\Flash\Direct as Flash;
use Phalcon\Flash\Session as FlashSession;
use App\Admin\Component\HtmlComponent;
use App\Admin\Plugin\SecurityPlugin as Security;
use App\Admin\Component\UserComponent;
use App\Admin\Component\SortComponent;
use App\Admin\Component\ConvertComponent;
use App\Admin\Component\GenerateComponent;
use Phalcon\Db\Adapter\Pdo\Mysql as PdoMysql;
use Phalcon\Session\Adapter\Files as SessionAdapter;
use Phalcon\Mvc\Url as UrlProvider;
use Phalcon\Translate\Adapter\NativeArray as Translator;
use Phalcon\Http\Response\Cookies;
use Phalcon\Crypt;
 
class Bootstrap
{
 
    public function run()
    {
        require BASE_PATH . "vendor/autoload.php";
 
        // Create factory default
        $di = new FactoryDefault();
 
        $di->set("eventsManager", function ()
        {
            $em = new EventsManager();
            return $em;
        });
 
        // Load apps
        require_once APP_PATH . "Enum.php";
        $apps = $this->loadApps();
 
        // Loader
        $loader = new Loader();
        $loader->registerNamespaces($apps["namespaces"]);
        $loader->register();
 
        // Create config
        $config = [];
        foreach ($apps["apps"] as $app) {
            $config[$app["name"]] = $app["appConfig"];
        }
 
        $config = new Config($config);
        $di->set("config", $config);
 
        // DB
        require_once APP_PATH . "MysqlExtended.php";
        $db = new PdoMysql([
            "host" => $config->admin->database->host,
            "port" => $config->admin->database->port,
            "username" => $config->admin->database->username,
            "password" => $config->admin->database->password,
            "dbname" => $config->admin->database->name,
            "dialectClass" => \MysqlExtended::class,
            "options" => [
                \PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
                \PDO::ATTR_ERRMODE => \PDO::ERRMODE_WARNING
            ]
        ]);
        define("JSON_SUPPORT", true);
        $di->set("db", $db);
 
        // View
        $view = new View();
        $view->registerEngines([
            ".volt" => "voltService"
        ]);
        $di->setShared("view", $view);
 
        // Volt
        $volt = new Volt($view, $di);
        $volt->setOptions([
            "compiledPath" => BASE_PATH . "cache" . DS . "volt" . DS,
            "compiledExtension" => ".compiled",
            "compileAlways" => true
        ]);
        $di->setShared("voltService", $volt);
 
        $di->set("dispatcher", function () use ($di)
        {
            $eventsManager = $di->getShared("eventsManager");
            $security = new Security($di);
            $eventsManager->attach("dispatch", $security);
            $dispatcher = new Dispatcher();
            $dispatcher->setEventsManager($eventsManager);
 
            return $dispatcher;
        });
 
        // Session
        $di->setShared("session", function ()
        {
            $session = new SessionAdapter();
            $session->start();
            return $session;
        });
        $session = $di->get("session");
        $sessionCookie = $di->get("cookies")
            ->get($session->getName())
            ->useEncryption(false);
        $timeout = 1200;
        $now = time();
        if ($sessionCookie->getExpiration() < $now) {
            $session->regenerateId(true);
        }
        $sessionCookie->setValue($session->getId())
            ->setExpiration($now + $timeout)
            ->send();
 
        // Register language && translations
        $this->setupLang($di, $apps["apps"], $config->admin);
 
        // Flash
        $di->set("flash", function ()
        {
            $flash = new Flash([
                "error" => "alert alert-danger",
                "success" => "alert alert-success",
                "notice" => "alert alert-info"
            ]);
            $flash->setAutoescape(false);
            return $flash;
        });
 
        // Flash session
        $di->set("flashSession", function ()
        {
            $flashSession = new FlashSession([
                "error" => "alert alert-danger",
                "success" => "alert alert-success",
                "notice" => "alert alert-info",
                "warning" => "alert alert-warning"
            ]);
            $flashSession->setAutoescape(false);
 
            return $flashSession;
        });
 
        // Cookies
        $di->set("cookies", function ()
        {
            $cookies = new Cookies();
            $cookies->useEncryption(true);
            return $cookies;
        });
 
        // Set encryption key
        $di->set("crypt", function ()
        {
            $crypt = new Crypt();
            $crypt->setKey("#151dj8$=dp?.ak//j1V$"); // Use a unique Key!
            return $crypt;
        });
 
        // User component
        $di->set("user", new UserComponent());
 
        // Url
        $di->set("url", function () use ($config)
        {
            $url = new UrlProvider();
            $url->setBaseUri($config->admin->application->baseUri);
            return $url;
        });
 
        // Sort
        $di->set("sort", new SortComponent());
 
        // Html
        $di->set("html", new HtmlComponent());
 
        // Convert
        $di->set("convert", new ConvertComponent());
 
        // Generate
        $di->set("generate", new GenerateComponent());
 
        // Create an application
        $application = new Application($di);
 
        // Register the installed modules
        $application->registerModules($apps["apps"]);
 
        // Handle the request
        $response = $application->handle();
        $response->send();
    }
 
    private function loadApps()
    {
        $appsData = [];
        $apps = include_once APP_PATH . "Apps.php";
        $base_namespace = "App\\";
        $namespaces = [];
        foreach ($apps as $app) {
            $appsData[strtolower($app)] = [
                "className" => $base_namespace . ucfirst($app) . "\\App",
                "path" => APP_PATH . strtolower($app) . DS . "App.php",
                "appConfig" => include_once APP_PATH . strtolower($app) . DS . "Config.php",
                "name" => strtolower($app),
                "routesClass" => $base_namespace . ucfirst($app) . "\\Routes"
            ];
 
            $namespaces = array_merge($namespaces, $this->getNamespaces($app, $base_namespace));
        }
 
        return [
            "apps" => $appsData,
            "namespaces" => $namespaces
        ];
    }
 
    private function getNamespaces($app, $base_namespace)
    {
        $namespaces = [
            $base_namespace . ucfirst($app) => APP_PATH . strtolower($app) . DS,
            $base_namespace . ucfirst($app) . "\\Controller" => APP_PATH . strtolower($app) . DS . "controller" . DS,
            $base_namespace . ucfirst($app) . "\\Model" => APP_PATH . strtolower($app) . DS . "model" . DS,
            $base_namespace . ucfirst($app) . "\\Validator" => APP_PATH . strtolower($app) . DS . "validator" . DS,
            $base_namespace . ucfirst($app) . "\\Form" => APP_PATH . strtolower($app) . DS . "form" . DS,
            $base_namespace . ucfirst($app) . "\\Plugin" => APP_PATH . strtolower($app) . DS . "plugin" . DS,
            $base_namespace . ucfirst($app) . "\\Component" => APP_PATH . strtolower($app) . DS . "component" . DS,
            $base_namespace . ucfirst($app) . "\\Enum" => APP_PATH . strtolower($app) . DS . "enum" . DS
        ];
        if ($app == "Admin") {
            $namespaces[$base_namespace . ucfirst($app) . "\\Form\\Element"] = APP_PATH . strtolower($app) . DS . "form" . DS . "element" . DS;
        }
 
        return $namespaces;
    }
 
    /**
     * Register language and translations
     *
     * @param FactoryDefault $di
     *            Depedency injector
     * @param string $language
     *            Actual language
     * @param array $modules
     *            Registered modules
     * @param Config $config
     *            Config
     */
    private function setupLang(FactoryDefault &$di, $modules, Config $config)
    {
        // Get choosen lang
        $session = $di->get("session");
        $request = $di->get("request");
        $force = false;
        if ($request->isGet() && $request->getQuery("lang")) {
            $language = $request->getQuery("lang");
            $force = true;
        } elseif ($session->has("lang")) {
            $language = $session->get("lang");
        } else {
            $language = substr($request->getBestLanguage(), 0, 2);
        }
 
        // Register language
        $i18n = new \stdClass();
        $i18n->default = $config->defaultLang;
        $i18n->allLang = $config->offsetExists("languages") ? $config->languages->toArray() : [
            $config->defaultLang => true
        ];
        $i18n->items = [];
        foreach ($i18n->allLang as $lang => $enabled) {
            if ($enabled) {
                $i18n->items[] = $lang;
            }
        }
        $i18n->selected = in_array($language, $i18n->items) ? $language : $config->defaultLang;
        $di->get("session")->set("lang", $i18n->selected);
        $di->setShared("i18n", $i18n);
 
        // Router
        $this->setupRoutes($di, $modules, $force);
        $i18n = $di->get("i18n");
 
        // Register translations
        $translations = [];
        foreach ($modules as $item) {
            $filename = APP_PATH . $item["name"] . DS . "translation" . DS . $i18n->selected . ".php";
            if (file_exists($filename)) {
                $translations += require_once $filename;
            }
        }
        $di->setShared("trans", new Translator([
            "content" => $translations
        ]));
    }
 
    private function setupRoutes(FactoryDefault &$di, array $modules, bool $force)
    {
        $i18n = $di->get("i18n");
        $route = [
            "lang" => $i18n->default
        ];
        $allRoutes = [];
        foreach ($i18n->allLang as $lang => $enabled) {
            $router = new Router(false);
            $router->setDefaultModule("admin")->removeExtraSlashes(true);
            foreach ($modules as $app) {
                $routesClassName = $app["routesClass"];
                if (class_exists($routesClassName)) {
                    $module = $app["name"];
                    $routesClass = new $routesClassName($lang);
                    $routesClass->init($router, $module);
                }
            }
            $router->handle();
            if ($router->wasMatched() && ! $enabled) {
                $route["route"] = $router->getMatchedRoute();
            }
            if ($router->wasMatched() && $enabled) {
                if ($force) {
                    $route["route"] = $router->getMatchedRoute();
                } else {
                    $route["lang"] = $lang;
                }
            }
            $allRoutes[$lang] = $router;
            if ($force && $i18n->selected == $lang && $enabled) {
                $route["lang"] = $lang;
            }
            $router = null;
            unset($router);
        }
        if (isset($route["route"])) {
            $router = $allRoutes[$route["lang"]];
            $router->handle();
            if (! $router->wasMatched()) {
                $param = [
                    "for" => $route["route"]->getName()
                ];
                if ($router->getParams()) {
                    $param += $router->getParams();
                }
                $di->set("router", $router);
                $di->get("response")
                    ->redirect($param, false, 301)
                    ->send();
                exit();
            }
        } else {
            if ($i18n->selected != $route["lang"]) {
                $i18n->selected = $route["lang"];
                $session = $di->get("session");
                $session->destroy();
                $session->set("lang", $i18n->selected);
            }
        }
        if ($force) {
            $router = $allRoutes[$route["lang"]];
            $di->set("router", $router);
            $di->get("response")
                ->redirect($router->getRewriteUri(), false, 301)
                ->send();
            exit();
        }
 
        $router = new Router(false);
        foreach ($modules as $app) {
            $routesClassName = $app["routesClass"];
            if (class_exists($routesClassName)) {
                $module = $app["name"];
                $routesClass = new $routesClassName($i18n->selected);
                $routesClass->init($router, $module);
            }
        }
        $router->setDefaultModule("admin")->removeExtraSlashes(true);
        $di->set("router", $router);
    }
}
#3App\Bootstrap->run()
/var/www/new.govern.hu/www/public/index.php (23)
<?php
 
define("DS", DIRECTORY_SEPARATOR);
 
define("BASE_PATH", realpath("..") . DS);
 
// Define base application path
define("APP_PATH", BASE_PATH . "apps" . DS);
 
define("UPLOADS_PATH", '/public/uploads' . DS);
 
define("CHARSET", "UTF-8");
 
define("MEDIAMAXUPLOADLIMIT", "0");
 
require_once APP_PATH . "Debugger.php";
(new Debugger())->listen(true, true);
// Include bootstrap
require_once APP_PATH . "Bootstrap.php";
 
// Instantiate and run platform bootstrap
$platform = new App\Bootstrap();
$platform->run();
KeyValue
_url/sitemap.xml
KeyValue
REDIRECT_REDIRECT_HTTPSon
REDIRECT_REDIRECT_SSL_TLS_SNInew.govern.hu
REDIRECT_REDIRECT_STATUS200
REDIRECT_HTTPSon
REDIRECT_SSL_TLS_SNInew.govern.hu
REDIRECT_STATUS200
HTTPSon
SSL_TLS_SNInew.govern.hu
HTTP_ACCEPT*/*
HTTP_USER_AGENTMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HTTP_ACCEPT_ENCODINGgzip, br, zstd, deflate
HTTP_HOSTnew.govern.hu
PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
SERVER_SIGNATURE
SERVER_SOFTWAREApache
SERVER_NAMEnew.govern.hu
SERVER_ADDR192.168.235.13
SERVER_PORT443
REMOTE_ADDR216.73.216.255
DOCUMENT_ROOT/var/www/new.govern.hu/www
REQUEST_SCHEMEhttps
CONTEXT_PREFIX
CONTEXT_DOCUMENT_ROOT/var/www/new.govern.hu/www
SERVER_ADMIN[no address given]
SCRIPT_FILENAME/var/www/new.govern.hu/www/public/index.php
REMOTE_PORT47404
REDIRECT_URL/public/sitemap.xml
REDIRECT_QUERY_STRING_url=/sitemap.xml
GATEWAY_INTERFACECGI/1.1
SERVER_PROTOCOLHTTP/1.1
REQUEST_METHODGET
QUERY_STRING_url=/sitemap.xml
REQUEST_URI/sitemap.xml
SCRIPT_NAME/public/index.php
PHP_SELF/public/index.php
REQUEST_TIME_FLOAT1753755618.782
REQUEST_TIME1753755618
#Path
0/var/www/new.govern.hu/www/public/index.php
1/var/www/new.govern.hu/www/apps/Debugger.php
2/var/www/new.govern.hu/www/apps/Bootstrap.php
3/var/www/new.govern.hu/www/vendor/autoload.php
4/var/www/new.govern.hu/www/vendor/composer/autoload_real.php
5/var/www/new.govern.hu/www/vendor/composer/ClassLoader.php
6/var/www/new.govern.hu/www/vendor/composer/autoload_static.php
7/var/www/new.govern.hu/www/apps/Enum.php
8/var/www/new.govern.hu/www/apps/Apps.php
9/var/www/new.govern.hu/www/apps/admin/Config.php
10/var/www/new.govern.hu/www/apps/frontend/Config.php
11/var/www/new.govern.hu/www/vendor/firebase/php-jwt/src/JWT.php
12/var/www/new.govern.hu/www/apps/MysqlExtended.php
Memory
Usage2097152