Ich hatte bis heute nicht klar, dass PHP tatsächlich de-Konstruktoren für Objekte, die für mich nervt, aber auch nur zufällig die perfekte Zeit für mich, sie zu entdecken. Anstatt Hinterindien mit
register_shutdown_function und darum kümmern, ob etwas Im nicht einmal sicher, ob ich las vor ein paar Jahren über einige Server Probleme mit dieser Funktion ist auch, wie es ist.
In jedem Fall muss die __destruct magische Methode Gegenstück zu __construct ist einfacher, als register_shutdown_function anyways verwenden, wenn Sie mich fragen. Das, was kinda sucks ist jedoch, dass die Verwendung von __destruct müssen Sie Verweise auf die konstruierten Objekte Verweilen herum, bis zum Ende der Ausführung von Skripten haben.
Sie können einen statischen Array in der Klasse verwenden, um diese Verweise jedoch retten.
Anywho, heres ein Beispiel. Ich benutze dies, um Verweise auf die zwischengespeicherten HTML-Dateien, die gelöscht werden müssen, zu speichern.
<?php
class garbage
{
protected static $can = array();
public static function collect($mask)
{
array_push(garbage::$can, new garbage($mask));
}
private $mask;
public function __construct($mask)
{
$this->mask = $mask;
}
public function __destruct()
{
file_utils::glob_delete($this->mask);
}
}
?>
- <?php
-
- class garbage
- {
- protected static $can = array();
- public static function collect($mask)
- {
- array_push(garbage::$can, new garbage($mask));
- }
-
- private $mask;
- public function __construct($mask)
- {
- $this->mask = $mask;
- }
- public function __destruct()
- {
- file_utils::glob_delete($this->mask);
- }
- }
-
- ?>
Why yes, yes I am.