Hallo,
ich hatte seit langem eine Application laufen, welche sich den User-Accounts aus Joomla bedient.
Relevanter Code:
PHP
<?php
defined("JPATH_BASE") or define("JPATH_BASE", $_SERVER['DOCUMENT_ROOT'] . "/cms");
$GLOBALS["jSession"] = NULL;
function getSession() {
defined('_JEXEC') or define('_JEXEC', 1);
if ($GLOBALS["jSession"] == NULL) {
require_once(JPATH_BASE . '/includes/defines.php');
require_once(JPATH_BASE . '/includes/framework.php');
require_once(JPATH_BASE . '/libraries/src/Factory.php');
$mainframe = JFactory::getApplication('site');
$mainframe->initialise();
$GLOBALS["jSession"] = JFactory::getSession();
}
return $GLOBALS["jSession"];
}
function foo() {
$sessionid = getSession()->getId();
// ....
}
?>
Alles anzeigen
Nach dem Update von Joomla 3.10 auf 4.0 funktioniert dies nicht mehr.
Stack Trace:
Code
Exception:
Failed to start application
at /var/www/html/cms/libraries/src/Factory.php:139
at Joomla\CMS\Factory::getApplication('site')
at getSession()
at foo()
Ich habe gelesen, dass getApplication nun ohne Argumente aufgerufen wird. Dies hat das Problem jedoch nicht verändert.
Zweck soll sein den auf der Site (nicht Administration) eingeloggten User zu nehmen und über die Session-ID dann diverse Datenbankanfragen auszuführen.