PHP register_shutdown_function Alternative

  • joebert
  • Weathered
  • Genius
  • Benutzeravatar
  • Registriert: Feb 10, 2004
  • Beiträge: 11879
  • Loc: Clearwater, FL
  • Status: Offline

Beitrag November 5th, 2009, 12:42 am

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 Code: [ Download ] [ Select ]
<?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);
   }
}
 
?>
  1. <?php
  2.  
  3. class garbage
  4. {
  5.    protected static $can = array();
  6.    public static function collect($mask)
  7.    {
  8.       array_push(garbage::$can, new garbage($mask));
  9.    }
  10.    
  11.    private $mask;
  12.    public function __construct($mask)
  13.    {
  14.       $this->mask = $mask;
  15.    }
  16.    public function __destruct()
  17.    {
  18.       file_utils::glob_delete($this->mask);
  19.    }
  20. }
  21.  
  22. ?>
Why yes, yes I am.
  • Anonymous
  • Bot
  • No Avatar
  • Registriert: 25 Feb 2008
  • Beiträge: ?
  • Loc: Ozzuland
  • Status: Online

Beitrag November 5th, 2009, 12:42 am

Buchung Informationen

  • Beiträge in diesem Thema: 1 Beitrag
  • Mitglieder in diesem Forum: 0 Mitglieder und 198 Gäste
  • Du darfst keine neuen Themen in diesem Forum erstellen.
  • Du darfst keine Antworten zu Themen in diesem Forum erstellen.
  • Du darfst deine Beiträge in diesem Forum nicht ändern.
  • Du darfst deine Beiträge in diesem Forum nicht löschen.
  • Du darfst keine Dateianhänge in diesem Forum erstellen.
 
 

© Unmelted Enterprises 1998-2009. Angetrieben durch phpBB © 2001-2009 phpBB Group.