Einzelnen Beitrag anzeigen
  #1  
Alt 14.05.2008, 22:08:33
ksticker ksticker ist offline
Member
 
Registriert seit: Nov 2007
Ort: Karlsruhe, Dresden
Alter: 35
Beiträge: 596
ksticker eine Nachricht über ICQ schicken
autoinclude- Klasse

Habe mal eine kleine, aber wie ich find feine Klasse für das automatische Includen von Files geschrieben, und wollte euch die mal nicht vorenthalten.
Man gibt nun einfach an in welchem Ordner sich die Dateien befinden und diese werden automatisch eingebunden, somit spaart man sich das lästige manuelle includen.

PHP-Code:
<?
/* BSP INCLUDE */

$files = new autoinclude;
$files->add_include_path("config/class/");
$files->autoinclude();

/*KLASSE*/

    class autoinclude
    {
        private $pfad = array();
        
        public function autoinclude($report = false)
        {
            foreach($this->pfad AS $path)
            {
                $includes = opendir ($path);
                while ( $includefile = readdir ( $includes ) )
                {
                    if((is_file($path.$includefile)) && ($includefile != 'autoinclude.class.php'))
                    {
                        if($report)
                        {
                            echo' Die Datei <b>'.$includefile.'</b> wurde eingebunden<br>';
                        }
                        include($path.$includefile);
                    }
                }
                closedir ($includes);
            }
        }
        
        public function add_include_path($new_path)
        {
            $this->pfad[$new_path] = $new_path;
        }
        
        public function show()
        {
            print_r($this->pfad);
        }
    }
?>
EDIT: Achja man kann die Klasse natürlich um Namespaces erweitern, so dass nur Dateien eingebunden werden die z.B. mit "inc_" beginnen.
Habe ich aber ersteinmal weggelassen, da ich es nicht benötige.
Und und bei der Methode autoinclude() kann man als Parameter true übergeben (autoinclude(true)), somit bekommt man nochmals angezeigt welche Files eingebunden wurden.

Geändert von ksticker (14.05.2008 um 22:17:33 Uhr)
Mit Zitat antworten