Ich erhalte den Fehler, auf den im Titel verwiesen wird, aus einer Datei, die nicht auf die Debugger-Klasse verweist. Wenn ich den Debugger manuell importiere, wird der Fehler immer noch angezeigt. Die Zeilennummer, auf die im letzten Fehler verwiesen wird}, die die Klassendefinition in der Datei beendet. Nichts folgt dem} (es gibt auch nicht? & Gt;). Die Datei, in der ich den Fehler erhalte, verweist nicht direkt auf Debugger, soweit ich das beurteilen kann (da es keine explizite Verwendung von Debugger gibt).
Hier ist der Stack-Trace:
%Vor%und hier ist der Kontext um Zeile 107:
%Vor%Ich habe den Fehler gefunden.
Diese Klasse, die ich gezeigt habe, hat die Initialisierungsmethode implementiert. Aber es ist als
implementiert %Vor%Dies ist ein E_STRICT-Fehler, da er sich von der übergeordneten Methode unterscheidet, indem der Typhinweis weggelassen wird. Mein Setup fängt E_STRICT Fehler ab. Dieser Fehler führt dazu, dass er nach Debugger sucht. Ich bin mir nicht sicher, warum es nicht automatisch geladen werden kann, sondern die Methode auf
umgestellt wird %Vor%hat das Problem behoben, das ich hatte.
Dies ist auf einen PHP-Fehler zurückzuführen, der das automatische Laden von Kompilierungsfehlern (z. B. , E_STRICT
).
Dies wurde in PHP 5.4.21 behoben und ein Abfrage mit Wortzugriff wurde von CakePHP akzeptiert.
Um dieses Problem manuell zu umgehen und E_STRICT
vom Fehlerhandler von CakePHP zu befreien:
core.php
in Ihrem bevorzugten Editor (Sie könnten die Datei finden, indem Sie etwas wie find . -name core.php
ausführen). 'level' => E_ALL & ~E_DEPRECATED,
'level' => E_ALL & ~E_DEPRECATED & ~E_STRICT,
Dies tritt jedes Mal auf, wenn Sie einen E_STRICT-Fehler haben. Das wichtigste, das ich hatte, war, wenn PHP 5.4 ausgeführt wurde, dass Sie public, private und protected function declarations haben müssen.
Das Problem ist, dass php niedriger als Version 5.4.21 ein Problem mit dem Autoloader bei E_STRICT-Fehlern hat. (E_STRICT ist ein Kompilierzeitfehler)
Ich habe genau das gleiche Problem bei einigen alten Projekten festgestellt, und es ist in 2.7.4 behoben.
Also ist die wirkliche Lösung, auf mindestens 5.4.21 zu aktualisieren oder auf CakePHP 2.7.4 zu warten
Tags und Links php public cakephp-2.0