Tobias Hahner: wie __destruct sinnvoll nutzen?

Beitrag lesen

Hallihallo!

Nur mal als Beispiel für einen Destruktor, den ich benutze:
Ich habe mir eine Logging- Klasse gebaut, die (stark vereinfacht) ungefähr so aussieht:

  
class log {  
   protected $messages;  // hier kommen die Meldungen rein  
  
   public function __construct() {  
      $this->messages = array[];  
      $this->messages[] = 'bin dann mal gestartet';  
   }  
  
   public function debug($message) {  
      // nur ein Beispiel. Wie gesagt, das hier ist stark vereinfacht.  
      // ausserdem geht es hier um den Destruktor... :-)  
      $this->messages[] = 'DEBUG :'.$message;  
   }  
  
   public function __destruct() {  
      // hier wird erst die Logdatei geschrieben.  
      // dadurch habe ich nicht die ganze Zeit das olle Handle offen.  
      // Das Tolle ist, dass ich mich nicht mehr darum kümmern  
      // muss, die Datei "manuell" zu schreiben  
  
      $logfile = fopen('/var/www/files/log.log',"w+");  
      $content = implode(PHP_EOL,$this->messages);  
      fwrite($logfile, $content);  
      fclose($logfile);  
   }  
}  
  
  

Beste Grüsse,
    Tobias Hahner