Ich versuche gerade mit meiner in der WoltLab-Suite vorhandenen PHP-Klasse eine andere Datei außerhalb der WoltLab-Suite aufzurufen, um dort eine Funktion auszuführen, die mir bestimmte Daten liefern soll aus einer anderen Datenbank.
Hier mal die Klasse, die ich in meinem Plugin habe und wo ich auch vorher mit file_exist geprüft hatte, ob die Datei überhaupt mit dem require_once gefunden wird.
Das tut Sie.
Aber wenn ich die Funktion aus der "fremden" - Klasse aufrufen möchte, bekomme ich immer diese Fehlermeldung:
Class 'srv\www\htdocs\sync_woltlab\ranksAccolades' not found
hier mal die von mir genutzte Klasse zum die fremde Funktion aufzurufen:
<?php
namespace wcf\data\dasKartellUserAwards\Database;
use wcf\data\AbstractDatabaseObjectAction;
use srv\www\htdocs\sync_woltlab\ranksAccolades;
/**
* Load the Informations from the Das-Kartell-Homepage-DB
*
* @author Markus Gerdelmann (MDCommander)
* @copyright 2023-2024 Das-Kartell.org
* @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
* @package org.das-kartell.user.awards
* @category Community Framework
*/
class DasKartellUserAwardsDatabase extends AbstractDatabaseObjectAction {
public $data = [];
public $userAwardsRanks = [];
public $username = '';
public static function getRanks($username) {
require_once('/srv/www/htdocs/sync_woltlab/ranksAccolades.class.php');
$userAwardsRanks = ranksAccolades::getAccolades($username);
echo "<pre>";
echo var_dump($userAwardsRanks);
echo "</pre>";
exit;
/*
$userAwardsRanks[0] = [
'rang_rolle_name' => 'Das Kartell',
'rang_rolle_kuerzel' => 'KRT',
'sortOrder' => '700',
'rang_zuordnung_active' => '1',
'id_medal' => '7',
'rang_raenge_name' => 'Captain',
'rankFile' => '/Mediafiles/Rangsymbole_190/KRT_10.png',
'rang_raenge_beschreibung_funktionsrang' => ''
];
$userAwardsRanks[1] = [
'rang_rolle_name' => 'Academy',
'rang_rolle_kuerzel' => 'A',
'sortOrder' => '700',
'rang_zuordnung_active' => '1',
'id_medal' => '7',
'rang_raenge_name' => 'Academy Manager',
'rankFile' => '/Mediafiles/Rangsymbole_180/A_6.jpg',
'rang_raenge_beschreibung_funktionsrang' => 'Leiter Academy'
];
$userAwardsRanks[2] = [
'rang_rolle_name' => 'Sub-Radar',
'rang_rolle_kuerzel' => 'S',
'sortOrder' => '700',
'rang_zuordnung_active' => '1',
'id_medal' => '7',
'rang_raenge_name' => 'Lieutenant',
'rankFile' => '/Mediafiles/Rangsymbole_180/S_9.jpg',
'rang_raenge_beschreibung_funktionsrang' => 'Kommandoleiter'
];
$userAwardsRanks[3] = [
'rang_rolle_name' => 'Studio',
'rang_rolle_kuerzel' => 'STU',
'sortOrder' => '700',
'rang_zuordnung_active' => '1',
'id_medal' => '7',
'rang_raenge_name' => 'Streamer',
'rankFile' => '/Mediafiles/Rangsymbole_180/STU_19.jpg',
'rang_raenge_beschreibung_funktionsrang' => ''
];
$userAwardsRanks[4] = [
'rang_rolle_name' => 'Raumüberlegenheit',
'rang_rolle_kuerzel' => 'R',
'sortOrder' => '700',
'rang_zuordnung_active' => '1',
'id_medal' => '7',
'rang_raenge_name' => 'Pilot',
'rankFile' => '/Mediafiles/Rangsymbole_180/R_20.jpg',
'rang_raenge_beschreibung_funktionsrang' => ''
];
*/
return $userAwardsRanks;
}
}
Display More
Die Datei liegt im Root-Verzeichnis des Servers im Ordner "srv\www\htdocs\sync_woltlab\"
Die Datei hat den Namen: ranksAccolades.class.php
Laut dem Ersteller der Datei ist der Namespace und die Class - Definition korrekt.
Woran könnte es denn liegen, dass ich die Klasse nicht finde? Liegt es an der Zeile
use srv\www\htdocs\sync_woltlab\ranksAccolades;
? Müsste da ein anderer Pfad angegeben werden eventuell?
Danke schon mal für die Info.