
Zitat von
Dr. Niels
Klar:
Klasse mit Debug erhält im Konstruktor den Callback:
PHP-Code:
public function __construct(callable $sendDebug)
{
$this->sendDebug = $sendDebug;
}
Klasse in module.php instanziieren und dabei den Callback übergeben:
PHP-Code:
$this->object = new DebugClass(
function ($Message, $Data, $Format) {
$this->SendDebug($Message, $Data, $Format);
}
);
Dann kann innerhalb der DebugClass die Funktion $this->SendDebug wie gewohnt verwendet werden.
Ich versuche das gerade umzusetzen, bekomme aber immer eine Fehlermeldung:
PHP-Code:
class DebugClass
{
public function __construct(callable $sendDebug)
{
$this->sendDebug = $sendDebug;
}
public function DoIt()
{
$this->sendDebug('message', 'data', KL_DEBUG);
}
}
// in der aufrufenden Klasse steht:
$MyObject = new DebugClass(
function($Message, $Data, $Format) {
$this->SendDebug($Message, $Data, $Format);
}
);
$MyObject->DoIt();
liefert die Fehlermeldung
Code:
Abort Processing during Fatal-Error: Uncaught Error: Call to undefined method DebugClass::sendDebug() in C:\IP-Symcon\modules\iCal-Calendar\iCalCalendarReader\module.php:28
Stack trace:
#0 C:\IP-Symcon\modules\iCal-Calendar\iCalCalendarReader\module.php(772): DebugClass->DoIt()
Ich finde meinen Fehler einfach nicht
. Irgendetwas scheint noch zu fehlen. Kann mir da jemand helfen?