Tag,
Da $verbindung in dem Script nicht deklariert wurde, aber in db_verbindung.inc.php, erhält man bei jedem MySQL-Query eine Meldung. Und wenn man viel mit ausgelagerten Variablen/Konstanten arbeitet, z.B. auf Grund von Sprach-Dateien (Pharsen), kann man so schon mal an die 30 Meldungen und mehr Fehler für "nicht deklarierte Variablen" erhalten.
Ich benutze gar keinen Code-Analysator. Deine Probleme mit existierenden Modellen kann ich absolut nicht nachvollziehen.
Dein hier dargestelltes Problem würde aber mit einer Datenbankklasse entfallen. Da gäbe es dann nur noch eine delete-Methode in der Klasse, und das ganze MySQL-Geraffel wäre ebenfalls im Include-File untergebracht. Und schon kann der Analysator auch nicht mehr meckern.
Das stimmt zwar, aber es gibt noch viele andere Beispiele, die man so nicht lösen kann.
Bsp:
<?php
$db = new DB;
$db->query("SELECT * FROM $tb_user");
?>
Wenn die Tabellen-Namen variable gehalten werden müssen, aufgrund eines Prefix wie es bei jedem größerem Massenscript der Fall ist (z.B. phpBB), dann würde ich pro SQL Anweisung also einen Meldung erhalten.
Zwar könnte ich mit Konstaten arbeiten, z.B. so:
$tabelle = "";
$db->quer("SELECT * FROM _tabelle_","TB_USER");
Das wäre aber in meinen Augen umständlich, denn die Class müsste erst _tabelle_ durch $tb_user ersetzen (oder ähnliches).
Zu leicht werden diese zwei Dateien - ggf. unabsichtlich - getrennt und funktionieren einzeln dann nicht mehr wie geplant.
Wenn man aber bestimmte Config Dateien Variable halten muss, dann wird das nicht funktionieren.
Analysiert man per Zend-Code-Analyse z.B. die profile.php (2600 Zeilen) vom vBB 3.x, so erhält man fast 200 Meldungen.
Bei der admincp/user.php (2200 Zeilen) sind es sogar fast 500 Melunden.
Ich glaube kaum das man dort von "schlampiger" Programmierung seitens vBulletin sprechen kann.
Die übliche Vorgehensweise wäre, zu Beginn
$fehler = "";
Das ist mir ja auch alles bekannt, aber bei ~1000 Zeilen Code kann es passieren, sollte aber nicht, dass eine Variable durchrutsch.
Und damit es kein folgen schweren Fehler gibt, sollte eine Maschine den Code gegenprüfen.
MFG
Klaus