Frank
Neues Mitglied
Hi, ja ich gebe zu ich habe schon eine Weile nicht mehr mit php gearbeitet.
Jetzt sitze ich an einem neuen Projekt und scheine eingerostet zu sein.
Ich finde einfach den Fehler nicht
Hier der Code
Aufruf:
Das ganze wird in der Console ausgeführt (PHP CLI) und gibt mir folgende Fehlermeldung aus:
Das ist die Ursache dafür, aber die Methode ist doch definiert ?! Wo hapert es?
Jetzt sitze ich an einem neuen Projekt und scheine eingerostet zu sein.
Ich finde einfach den Fehler nicht
Hier der Code
PHP:
<?php
interface TrackingInterface{
public function __construct($gbx, $log, $config);
public function forcingset();
public function beginrace($information);
public function get($which="current", $what=null);
public function __destruct();
}
class Tracking implements TrackingInterface {
var $gbx;
var $log;
var $config;
var $information;
var $nextinformation;
var $lastinformation;
public function __construct($gbx, $log, $config) {
$self->gbx = $gbx;
$self->log = $log;
$self->config = $config;
$self->information = array();
$self->nextinformation = array();
$self->lastinformation = array();
$self->log->log("INFO","Tracking system has beend initialized");
$self->forcingset();
}
public function forcingset() {
$self->log->log("INFO","Getting track information by non-callback");
$info = $self->gbx->Query("GetChallengeInfo");
if($info === false) {
$self->log->log("WARNING","Was not able to get information on current track");
$self->log->log("ERROR","[{$gbx->getErrorCode()}] {$gbx->getErrorMessage()}");
trigger_error("Was not able to get information on current track",E_USER_ERROR);
}
elseif(!is_array($info)) {
$self->log->log("WARNING","Was not able to get information on current track, setting to unknown");
trigger_error("Was not able to get information on current track, setting to unknown",E_USER_WARNING);
$self->information = array( "Name"=>"unknown", "UId"=>md5("unknown"), "FileName"=>"unknown", "Author"=>"unknown",
"Environnement"=>"unknown", "Mood"=>"unknown", "BronzeTime"=>0, "SilverTime"=>0,
"GoldTime"=>0, "AuthorTime"=>0, "CopperPrice"=>0, "LapRace"=>0);
}
else {
$self->information = $info;
$self->log->log("INFO","Track information on the current track have been updated");
}
$nextinfo = $self->gbx->Query("GetNextChallengeInfo");
if($nextinfo === false) {
$self->log->log("WARNING","Was not able to get information on next track");
$self->log->log("ERROR","[{$gbx->getErrorCode()}] {$gbx->getErrorMessage()}");
trigger_error("Was not able to get information on next track",E_USER_ERROR);
}
elseif(!is_array($nextinfo)) {
$self->log->log("WARNING","Was not able to get information on next track, setting to unknown");
trigger_error("Was not able to get information on next track, setting to unknown",E_USER_WARNING);
$self->nextinformation = array( "Name"=>"unknown", "UId"=>md5("unknown"), "FileName"=>"unknown", "Author"=>"unknown",
"Environnement"=>"unknown", "Mood"=>"unknown", "BronzeTime"=>0, "SilverTime"=>0,
"GoldTime"=>0, "AuthorTime"=>0, "CopperPrice"=>0, "LapRace"=>0);
}
else {
$self->nextinformation = $nextinfo;
$self->log->log("INFO","Track information on the next track have been updated");
}
}
public function beginrace($information) {
$self->log->log("INFO","Server started next track, updating track information");
$self->lastinformation = $self->information;
$self->information = $information;
$nextinfo = $self->gbx->Query("GetNextChallengeInfo");
$self->log->log("INFO","Track information on the current track have been updated");
$self->log->log("INFO","Track information on the last track have been updated");
if($nextinfo === false) {
$self->log->log("WARNING","Was not able to get information on next track");
$self->log->log("ERROR","[{$gbx->getErrorCode()}] {$gbx->getErrorMessage()}");
trigger_error("Was not able to get information on next track, setting to unknown",E_USER_ERROR);
}
elseif(!is_array($nextinfo)) {
$self->log->log("WARNING","Was not able to get information on next track, setting to unknown");
trigger_error("Was not able to get information on next track, setting to unknown",E_USER_WARNING);
$self->nextinformation = array( "Name"=>"unknown", "UId"=>md5("unknown"), "FileName"=>"unknown", "Author"=>"unknown",
"Environnement"=>"unknown", "Mood"=>"unknown", "BronzeTime"=>0, "SilverTime"=>0,
"GoldTime"=>0, "AuthorTime"=>0, "CopperPrice"=>0, "LapRace"=>0);
}
else {
$self->nextinformation = $nextinfo;
$self->log->log("INFO","Track information on the next track have been updated");
}
}
public function get($which="current", $what=null) {
switch($which) {
case "current":
if(!array_key_exists($what, $self->information)) {
return $self->information;
}
return $self->information[$what];
break;
case "next":
if(!array_key_exists($what, $self->nextinformation)) {
return $self->nextinformation;
}
return $self->nextinformation[$what];
break;
case "last":
if(!array_key_exists($what, $self->lastinformation)) {
return $self->lastinformation;
}
return $self->lastinformation[$what];
break;
}
}
public function __destruct() {
unset($gbx);
unset($log);
unset($config);
unset($information);
unset($nextinformation);
unset($lastinformation);
}
}
?>
PHP:
$tracking = new Tracking($gbx, $log, $config);
var_dump($tracking->get());
Das ganze wird in der Console ausgeführt (PHP CLI) und gibt mir folgende Fehlermeldung aus:
Fatal error: Call to undefined method stdClass::forcingset() in /home/tmuf/plugins/php/sources/Tracking.inc.php on line 24
PHP:
$self->forcingset();