Spl Autoload funktioniert nicht

Denniz

Erfahrenes Mitglied
Hi Leute,

wieso funktioniert der spl autoloader nicht. Ich habe Php 5.2.6 installiert.

PHP:
 function myautoload($the_class_name){
	$packages_arr = array('', 'service','controller', 'model','view', 'vo', 'util' );     
	$class_name = strtolower($the_class_name);
	for($i=0; $i<count($packages_arr); $i++){
		$path =array();
		$path[] = "_includes/{$packages_arr[$i]}/class.{$class_name}.php";
		$path[] = "_includes/{$packages_arr[$i]}/{$class_name}.php";
		for($j=0; $j<=count($path); $j++){
			if(file_exists($path[$j])){
				require_once($path[$j]);
				return;	
			}  
		} 	
	}
	die("Klasse {$the_class_name} nicht gefunden");
}
	
 
spl_autoload_register('myautoload');

Es wird keine Klasse geladen, mit den standart __autoload klappt es dagegen. Wieso aber nicht mit den spl_autoload?
 
Zuletzt bearbeitet:
Hi,

ich habe selbiges auch schon beobachtet. Ich konnte bisher nur eine Klassenmethode als Autoloadfunktion registrieren. Also das was du vorhast, hat bei mir auch noch nie funktioniert. Da es für mich so ziemlich gut funktioniert, belasse ich das auch dabei. :)

Vielleicht hat hier doch jemand einen Hinweis, wieso das nicht funktioniert. Würde das dann aus purer Neugier auch wissen wollen.
 
Hi Loomis,

da hast du bestimmt den gleichen Fehler gemacht wie ich.

Du mußt den spl_autoload noch vor der ersten klasseninstanzierung/ -initialisierung registrieren, dann geht es.
 
Zurück