Best Practices für die Verwendung von PHP Magische Konstanten
-
28-09-2019 - |
Frage
Was sind die Best Practices für die Verwendung von PHP Magic Konstanten sind, wie __LINE__
, __FILE__
, __FUNCTION__
, __CLASS__
und __METHOD__
?
Zum Beispiel habe ich Gebrauch __LINE__
und __CLASS__
die SQL-Fehler wie folgt zu finden:
$result = mysql_query($query)
or die("Error SQL line ".__LINE__ ." class ".__CLASS__." : ".mysql_error());
Ist das eine akzeptable Praxis?
Lösung
Die Praxis Sie zeigen zwei Mängel auf:
-
Sie sind nicht auf die Datei zeigt der Fehler auftritt, in - Sie haben müsste eine sehr strenge Dateistruktur, die Klassen-Dateien 1 abbildet: 1 für diese nützlich sein
-
__CLASS__
zeigen Ihnen das falsche Ergebnis, wenn der Fehler in einer geerbten Klasse auftritt. Verwendenget_class($this)
die tatsächliche aktuelle Klasse zu erhalten.
Other than that, ist es, diese Konstanten durchaus akzeptabel. Beachten Sie, dass
-
__FUNCTION__
und__CLASS__
wurden in PHP 4.3 hinzugefügt
-
__METHOD__
verfügbar ist seit PHP 5.0.0 -
__DIR__
und__NAMESPACE__
sind seit PHP 5.3 zur Verfügung.
Andere Tipps
Der Zweck für diese Konstanten ist Debugging und Protokollierung. Das ist genau das, was Sie tun.
__FILE__
kann auch für die relative Dateipfade verwendet werden (z dirname(__FILE__)
).
Der einzige Rat, den ich geben kann, ist, dass nicht alle magischen Konstanten definiert sind. Also, wenn im Zweifelsfall Verwendung if(defined('__MAGIC_CONSTANT__'))