Ociu już coś podobnego zrobił tu: http://forum.php.pl/index.php?showtopic=41389
Ja też jakiś czas temu napisałem sobie pewną prostą klasę, która jeszcze robi przy okazji małe cache

<?php /** * ładowanie klas * @author Speedy <sppeedy@poczta.fm> * @version 1.0 */ class autoload { var $classdir; var $cache_file; /** * konstruktor * @param string $classdir * @param string $cache_file * @return void */ function autoload($classdir,$cache_file) { $this->classdir = $classdir.'/'; $this->cache_file = $cache_file; $this->load_classes(); } /** * pobiera klasy ze zdefiniowanego katalogu * struktura pliku z klasą jest następująca: * nazwa_klasy.class.php * @param void * @return array $classes */ function get_classes() { { { { if($parts[1] == 'class' && $path_parts['extension'] == 'php') { $classes[$parts[0]] = $this->classdir.$file; } } } } return $classes; } /** * tworzy cache z tablicą ze wszystkimi klasami * @param void * @return void */ function create_class_cache() { } /** * przygotowuje klasy do załadowania * @param void * @return array $classes */ function preload_classes() { { $this->create_class_cache(); } return $classes; } /** * ładuje klasy * @param void * @return void */ function load_classes() { $classes = $this->preload_classes(); foreach($classes as $class) { { require_once $class; } } } } ?>
Użycie:
Pierwszym parametrem jest katalog z klasami (pliki: *.class.php), natomiast drugim ścieżka do docelowego pliku, w którym będzie przechowywane cache.
<?php new autoload('classes/primary','cache/classes/primaryclasses.cache.php'); ?>
Pozdrawiam.