Gansta: problem mit log4php --> Notice

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

  1. 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

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

    1. 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

  2. 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

  3. 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

    1. 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

      1. 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

        1. 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