PHP Fatal error: Cannot use 'object' as class name ...

PHP Fatal error: Cannot use 'object' as class name ...

von Ekkehard Skirl -
Anzahl Antworten: 2

Guten Tag liebe Mitsstreiter,

heute hat mich mein Moodle etwas irritiert.

Die Scripte cron.php und maintenance.php liefern den folgenden Fehler unter PHP 5.6.33-0+deb8u1 und Moodle 3.3.5+ (20180515)

PHP Fatal error: 
Cannot use 'object' as class name as it is reserved in
/Moodle-Pfad/lib/setuplib.php on line 66

Der Fehler war mir nur bekannt als Fehler in höheren PHP-Versionen.

Die setuplib.php hat da ab Zeile 66 folgendes zu stehen:

class object extends stdClass {
/**
* Constructor.
  */
  public function __construct() { debugging("'object' class has been deprecated, please use stdClass instead.", DEBUG_DEVELOPER);
 }
};
Das maintenance-Script liefert diesen Fehler schon eine geraume Zeit, aber da man ja im Moodle selbst auch in den Wartungsmodus schalten kann, war es kein Problem. Seit wann das cron-Script da schimpft, kann ich leider nicht sagen.

Kann ich diesen Fehler selbst beheben? Was sehe ich da gerade nicht?

Ach ja, diese Fehler treten im Linux-Terminal beim Script-Abruf auf.

Danke für eure Mühen

Herzliche Grüße aus Velten

Ekkehard


Mittelwert:  -
Als Antwort auf Ekkehard Skirl

Re: PHP Fatal error: Cannot use 'object' as class name ...

von Andreas Grabs -
Nutzerbild von Besonders aktive Moodler Nutzerbild von Entwickler

Hallo Ekkehard,

deine Meldung deutet darauf hin, dass dein Cron mit "PHP 7.2" gestartet wird. Du kannst auf der Konsole prüfen, welche Version standardmäßig als CLI aufgerufen wird:

# php --version

Im Prinzip hast du jetzt drei Optionen:

  1. Du änderst den php-Aufruf in deiner Crontab auf eine Version von 5.6.x bis 7.1.x
  2. Du aktualisierst dein System auf Moodle 3.4.x
  3. Du wartest bis Morgen und aktualisierst dein System Moodle 3.5
Bei 2) und 3) musst du allerdings auch noch deine Apache-Konfiguration ändern, da diese vermutlich noch mit PHP-5.6 läuft.

Viele Grüße
Andreas
Als Antwort auf Andreas Grabs

Re: PHP Fatal error: Cannot use 'object' as class name ...

von Ekkehard Skirl -

Hallo Andreas,

herzlichen Dank. Mir war nicht klar, dass mein Provider im Hintergrund das PHP aufgestockt hat. Bisher konnte ich kein Moodle 3.4 installieren, weil es am PHP scheiterte. Jetzt sind zwei Versionen parallel vorhanden. Darauf wäre ich so schnell nicht gekommen. Dein Hinweis gab die Kopfnuss, die das Denken wieder anschob. lächelnd

Herzliche Grüße aus Velten

Ekkehard