Schönheitsfehler im wBB 2.3.x – Teil 2

Erst gestern habe ich den kleinen Schönheitsfehlern des wBB2.3.x gewidmet. Leider habe ich mich zu früh gefreut. Nach einer ersten Betrachtung sind in den einzelnen Teilen des Forums neue Meldungen aufgetaucht. Da wäre der folgende Hinweis zu nennen, der uns auf Schwächen bei der Umsetzung von strikten Vorgaben seitens PHP aufmerksam macht.
[cc lang=’php‘]Strict Standards: Declaration of parsecode::doparse() should be compatible with parse::doparse[/cc].

Diese Meldung ist beim Antworten auf Themen, sowie der Erstellung dieser zu sehen. Die Ursache hierfür ist die Weiterverwendung der Methode: doparse(). Diese gab es bereits in der Elternklasse: parse(). Die Meldung weist uns nun darauf hin, dass nicht Methode doparse() nicht mit allen laut Definition benötigten Parametern befüllt wurde.

Um das Problem nun zu beheben sucht man nun in der Datei: ./acp/lib/class_class_parsecode.php nach:
[cc lang=’php‘]function doparse( $post) {[/cc] und ersetzt es durch Folgendes: [cc lang=’php‘]function doparse($post, $allowsmilies=false, $allowhtml=false, $allowbbcode=false, $allowimages=false) {[/cc]
 
Man muss nun sagen, dass damit noch nicht alle Meldungen abgearbeitet sind. Daher gehe ich kurz auf die möglichen weiteren Typen ein.

  1. Meldungen nach dem Schema: Notice: Undefined index:
    Diese Meldung weist auf fehlende Indizes hin. Dies kann auftreten, wenn diese nie explizit angelegt wurden, aber später ihr Wert geprüft wird. Hier kommt mal wieder eine alte Schwäche von PHP zum tragen, die auf das Fehlen von klaren Definitionen einzelner Werte beruht.
  2. Meldungen nach dem Schema: Notice: Undefined variable:
    Diese Meldung gibt einen Hinweis auf eine nicht definierte Variable, die aber im Ablauf eines Skriptes aufgerufen wird. Auch hier kommt die Schwäche von PHP zum tragen. Das beim herkömmlichen Ausführen eines Skriptes keine Fehlermeldung erscheint ist darauf zurückzuführen, dass eine Variable die nicht deklariert ist einfach als leer ausgeben wird.
    Hier ein kleines Beispiel:
    [cc lang=’php‘]
    < ?php $foo = ''; print $bar; ?>[/cc]
    Mir wird an dieser Stelle nichts ausgegeben. Würde man das gleiche Schema bspweise mit JAVA erstellen würde mir beim Kompilieren alles um die Ohren fliegen. 😉
  3. Meldungen nach dem Schema: Notice: Use of undefined constant wert – assumed ‚wert‘ .
    Diese Hinweise gibt es vor allem in Templates, da beim Aufrufen einzelner Werte von Indizes nur: $var[wert] genutzt wird. Sinnvoller und vor allem richtiger ist es da auf: $var[‚wert‘] zurückzugreifen.

Ich hoffe doch dem einen oder anderen ein paar hilfreiche Hinweise gegeben zu haben.

Ein Hinweis sei an der Stelle noch einmal gegeben. Die erwähnten Meldungen treten nur im Falle einer Aktivierung aller Meldungen inklusive Notices auf. Sofern man noch an einem System arbeitet sollten diese Meldungen aktiviert sein, um auf mögliche Schwächen einzugehen. Im produktiven Einsatz von Software ist allerdings davon abzuraten diese anzuzeigen. Man möchte ja nicht unnötig anderen Hinweise auf die eigenen Schwächen geben. 😉

Autor: Michael Schüler

Ich befasse mich derzeit verstärkt mit dem Thema Fotografie und bin ebenso als Entwickler im Web unterwegs. Dabei interessieren mich verstärkt Themen wie die Modifikation und Erweiterung von Forensoftware sowie Blogsoftware, wie bspweise WordPress.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.