Hallo Allerseits,
Leider habe ich noch ein Problem mit meinem Hoststar-Server mit PHP 5.2.
Bis jetzt habe ich meine Applikation mit einem lokalen WAMP-Server unter Windows getestet und da hat immer alles gut funktioniert, aber auf meinem Hoststar-Server-Account ist ploetzlich Sense mit dem Autoload.
Ich habe eine Initialisierungsdatei die neben dem Standard-Autoload-Handler auch zwei benutzerdefinierte einbindet, und zwar eine eigene und eine vom Doctrine-Framework.
Auf dem Server-Account scheint das autoload zwar prinzipiell zu funktionieren, die Klassen die der Standard-Autoload-Handler aber finden sollte werden nicht gefunden und an die benutzerdefinierten weitergegeben.
Ich hab unten ein Beispielskript eingefuegt. Der Fehler tritt auf bei DbHelpers in der vorletzten Zeile. Diese Klasse ist in classes/DbHelpers.php und sollte von der Standard-Autoload-Handler-Funktion gefunden werden, da der Klassenname gleich dem Dateinamen und der Pfad im Include-Path ist. Allerdings wird der Name durchgereicht und dann von custom_autoload ausgegeben. Wenn ich classes/DbHelpers.php ueber require_once einbinde, dann funktioniert es.
require\_once( 'external/doctrine/Doctrine.php' );
function custom\_autoload( $className )
{
switch( strtolower( $className ) )
{
case 'phpthumb':
require 'external/phpThumb/phpthumb.class.php';
return true;
}
echo $className . 'not found.';
}
spl\_autoload\_register();
spl\_autoload\_register( array( 'Doctrine', 'autoload' ) );
spl\_autoload\_register( 'custom\_autoload' );
set\_include\_path( get\_include\_path() . PATH\_SEPARATOR . 'classes' . PATH\_SEPARATOR . 'content' );
DbHelpers::getConnection();
session\_start();
Ich habs auch mit absoluten Pfadangaben im Include-Path probiert, aber das hat nichts geholfen.
Wuerde mich ueber Hinweise freuen.
Schoene Gruesse, Robert