$values ist ein wesentlich besserer Variablenname als $vs und ist dennoch ein schlechter Variablenname, weil "Werte", ein Array mit "Werten" *nichts* aussagt. Eine Variable enthält typischerweise einen Wert (das kann auch ein Array, ein Objekt oder sonstwas sein). Der Variablenname sollte so gewählt sein, dass man weiß oder zumindest ahnen kann um *was* es sich bei den "Werten" handelt.
Die Deklaration von $vs ist nie weit entfernt, sodass ich sofort den Bezug dazu habe. schneller als wenn ich schreibe $ResultatDerDBAbfrageWoIchInDerTabelleUsersNachDemMitDerEntsprechendenIdGesuchtHabe
Zusätzlich willst Du Dich um ausführliches, sinnvolles Kommentieren drücken?
Find' ich nicht gut.
Um zu ausführliches möchte ich mich drücken, um sinnvolles nicht. Ich stosse oft auf fremden Code, bei dem ich erst drei viertel der Kommentare löschen muss damit ich mir einen Überblick verschaffen kann.
Und zwar genau solche Kommentare:
Der Rückgabewert von Page() und liveLog::$id sind garantiert ganze Zahlen,
deswegen ist keine Maskierung erforderlich
D()->query("UPDATE log SET page_id = '".Page()."' WHERE id = '".liveLog::$id."'");
Jetzt mal ehrlich, in diesem Fall musst du doch hier annehmen dass Page() eine "page\_id" also eine Zahl zurück gibt. Und wenn du Zweifel hast schaust du dir die Funktion Page() genauer an, dann weisst du es auch gleich für die Zukunft.
Aber um dem Entwickler-Kollegen die Qualität von meinem Code zu versichern, blase ich ihn nicht sinnlos mit Kommentaren auf.
> den zwingend erforderlichen Kommentar kannst Du Dir durch Verwenden der Prepared Statements sparen.
Vergleiche:
\-------------------------------------------------------
~~~php
$stmt = D()->prepare("UPDATE log SET page_id=:page_id WHERE id = :id ");
$stmt->bindParam(':page_id', Page() );
$stmt->bindParam(':id', $liveLog::$id );
$stmt->execute();
vs
D()->query("UPDATE log SET page_id = '".Page()."' WHERE id = '".liveLog::$id."'");
-------------------------------------------------------
Also ich habe bei der zweiten Variante viel schneller kapiert was passiert.
Gut man könnte die prepared statments in einer Funktion kapseln damit es irgendwie so aussieht:
D()->myPreparedQuery("UPDATE log SET page_id=? WHERE id = ? ", Page(), $livelog::$id);
Das wäre eventuell noch sinnvoll, auch um andere Entwickler zu beruhigen :)
Hat die Nachteile, dass es nicht mehr ganz so gut lesbar ist und dass man einen Zwischenschritt einbaut, was die Komplexität des Codes erhöht.
Gruss
Töbi