problem mit log4php --> Notice
Gansta
- php
0 Tom0 Gansta
0 ChrisB0 Christian Seiler0 ChrisB
Hallo,
ich verwende schon seit längerem log4php bei meinen Projekten.
Nun habe ich bei Verwendung von PHP5 immer folgende Meldungen:
Notice: Only variable references should be returned by reference in xxx\lib\log4php\LoggerAppender.php on line x
Notice: Only variable references should be returned by reference in xxx\lib\log4php\LoggerPropertyConfigurator.php on line x
Notice: Only variable references should be returned by reference in xxx\lib\log4php\LoggerPropertyConfigurator.php on line x
Gibt es dafür bereits eine saubere Lösung (also nicht einfach die Notices unterdrücken)?
Mich wundert es, dass ich darüber noch nichts entsprechendes gefunden habe, da ich der Meinung war, dass relativ viele Leute log4php verwenden...
LG,
Gansta
Hello,
Gibt es dafür bereits eine saubere Lösung (also nicht einfach die Notices unterdrücken)?
Mich wundert es, dass ich darüber noch nichts entsprechendes gefunden habe, da ich der Meinung war, dass relativ viele Leute log4php verwenden...
Könntet Du bitte mal einer dieser Zeilen raussuchen und posten, die da betroffen ist?
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Lieben Dank für die Hilfe.
An mehreren Stellen wurde return null; aufgerufen.
Nachdem ich das ausgebessert hab, läuft es.
Btw: Mit welchem Tool macht Ihr denn Logausgaben?
LG,
Gansta
Hi,
ich verwende schon seit längerem log4php bei meinen Projekten.
Nun habe ich bei Verwendung von PHP5 immer folgende Meldungen:
Notice: Only variable references should be returned by reference in xxx\lib\log4php\LoggerAppender.php on line x
Diese Meldung bekommst du idR., wenn "nicht-Variablen" mit return "per Reference" zurueckgegeben werden sollen. Also in Kontexten, in denen bpsw. eine Funktion (bzw. Methode) mit function &funktionABC() { ... } definiert wurde, und du dann innerhalb dieser Funktion etwas mittels return zurueckgeben willst:
return new ObjectXY(); // keine Variable -> Notice
return false; // keine Variable -> Notice
return ($this->value); // keine Variable! - sondern eine Expression -> Notice
$myNewObjectXY = new ObjectXY();
return $myNewObjectXY; // OK, da Variable vorliegt
$myReturnValue = false;
return $myReturnValue; // OK, da Variable vorliegt
MfG ChrisB
Hallo,
ich verwende schon seit längerem log4php bei meinen Projekten.
Nun habe ich bei Verwendung von PHP5 immer folgende Meldungen:
Notice: Only variable references should be returned by reference in xxx\lib\log4php\LoggerAppender.php on line x
Die Software ist offensichtlich älter (lies: sehr alt) und berücksichtigt einige Änderungen in der Behandlung von Referenzen, die mit PHP 4.4 eingeführt wurden, nicht.
Im Thread wurde Dir ja bereits gesagt, wonach Du Ausschau halten musst, damit Du die Meldungen wegbekommst.
Viele Grüße,
Christian
Hi,
Die Software ist offensichtlich älter (lies: sehr alt) und berücksichtigt einige Änderungen in der Behandlung von Referenzen, die mit PHP 4.4 eingeführt wurden, nicht.
Uhm, by the way, aeltere Software und so ... unter PHP 5 mit E_STRICT schmeisst auch deine BBCode-Parserklasse einige Notices à la
Strict Standards: Assigning the return value of new by reference is deprecated in ... on line 569
Hast du irgendwelche Plaene, das in einer (baldigen) zukuenftigen Version mal zu fixen? (Ich meine, der Support fuer PHP 4 laueft ja sowieso bald aus, also koennte man das Ganze ja vielleicht mal komplett auf PHP 5 und dessen OOP-Modell umstellen ...)
Derzeit behelfe ich mir damit, vor dem Einbinden der stringparser_bbcode.class.php auf E_ALL umzustellen, und direkt danach wieder auf E_ALL|E_STRICT - aber auf Dauer nicht so schoen ...
MfG ChrisB
Hallo Chris,
Uhm, by the way, aeltere Software und so ... unter PHP 5 mit E_STRICT schmeisst auch deine BBCode-Parserklasse einige Notices à la
Strict Standards: Assigning the return value of new by reference is deprecated in ... on line 569
*hihi* Das musste ja kommen. ;-)
Hast du irgendwelche Plaene, das in einer (baldigen) zukuenftigen Version mal zu fixen?
Ja. Ich bin gerade dabei, die Klasse für PHP 5 komplett neu zu schreiben - inklusive einer komplett auf OOP aufbuaenden Schnittstelle (mit Interfaces und allem drum und dran), die außerdem auch von den Konzepten her viel verständlicher sein wird, dafür aber noch mehr können wird. Wann die fertig wird, kann ich natürlich noch nicht genau sagen, aber ich hoffe, dass ich recht schnell eine erste Beta-Version herausbringen kann.
Zudem hatte ich mir vorgenommen, bei der Version auch einige Referenzimplementierungen mitzuliefern, d.h. z.B. eine Implementierung, die BBCodes so implementiert, wie phpBB es tut, etc. Damit dürfte man dann auch einen guten Ansatzpunkt haben, um die Klasse a) zu verstehen und b) einfach erweitern zu können.
Viele Grüße,
Christian
Hi,
Ich bin gerade dabei, die Klasse für PHP 5 komplett neu zu schreiben - inklusive einer komplett auf OOP aufbuaenden Schnittstelle (mit Interfaces und allem drum und dran),
Klingt vielversprechend!
die außerdem auch von den Konzepten her viel verständlicher sein wird, dafür aber noch mehr können wird.
Stimmt, die bisherige Version erforderte doch etwas mehr Einarbeitung - insb., wenn man sie selber erweitern wollte.
Wann die fertig wird, kann ich natürlich noch nicht genau sagen, aber ich hoffe, dass ich recht schnell eine erste Beta-Version herausbringen kann.
Bin gespannt - und gerne bereit zum Beta-Testen.
Zudem hatte ich mir vorgenommen, bei der Version auch einige Referenzimplementierungen mitzuliefern, d.h. z.B. eine Implementierung, die BBCodes so implementiert, wie phpBB es tut, etc. Damit dürfte man dann auch einen guten Ansatzpunkt haben, um die Klasse a) zu verstehen und b) einfach erweitern zu können.
Das Beispiel in deiner Doku war ja fuer den Anfang schon recht brauchbar - und weiteres erschloss sich dann recht gut beim weiteren "Herumspielen" mit der Klasse. Aber fuer Leute, die dafuer die "Geduld" vielleicht nicht haben, ist es sicher nicht verkehrt, auch hier etwas mehr gleich gebrauchsfertig mitzuliefern.
MfG ChrisB