reiner hohn: einefaches Plugin-System mit Abhängigkeiten (rekursion)

Beitrag lesen

Dank. Ich hab das jetzt wie folgt gelöst:

  class app {  
    protected static $loaded_plugins = array();  
    protected static $queue = array();  
  
    public function load ($str) {  
      if(!isset(self::$loaded_plugins[$str]) && !in_array($str,self::$queue)) {  
        $class = 'plugin_'.$str;  
        self::$loaded_plugins[$str] = new $class();  
        }  
      }  
  
    public function loaded () {  
      return self::$loaded_plugins;  
      }  
    }  
  
  
  class plugin extends app {  
    protected $required_plugins = array();  
  
    public function __construct () {  
      parent::$queue[] = substr(get_class($this), strripos(get_class($this), '_') + 1); // name des plugins welches unprügnlich geladen werden sollte  
      foreach($this->required_plugins as $plugin)  
        $this->load($plugin);  
      parent::$queue = array();  
      }  
  
    public function __destruct () {  
      }  
    }