Failed to open dir und Fatal Error

Voltex

Mitglied
Hallo Community,
Ich stehe vor einem kleinem Problem. Ich wollte ein PN System entwickeln, stoße dabei jedoch auf 2 böse Fehler. Warum weiß ich nicht. Folgendes wird mir ausgegeben:

Warning: dir(source/) [function.dir]: failed to open dir: No error in C:\wamp\www\mycom\lib\classloader.lib.php on line 15

Fatal error: Call to a member function read() on a non-object in C:\wamp\www\mycom\lib\classloader.lib.php on line 18

und das wäre die Datei:

PHP:
<?php


function __autoload($className)
{
	define("__GLOBAL_PACKAGE_PATH", "source/");
	define("__GLOBAL_CLASS_POSTFIX", ".class.php");
	
	// Klassenattribute
	$packageRootDir = null;
	$currentObject = null;
	$currentClass = null;
	
	// Oeffnen des Paketverzeichnisses.
	$packageRootDir = dir(__GLOBAL_PACKAGE_PATH);
	
	// Durchlaufe alle Ordner des Paketverzeichnisses.
	while($currentObject = $packageRootDir->read())
	{
		// Laufe weiter wenn ein Punkt gefunden wurde.
		if($currentObject == ".")
		{
			continue;
		}
		else
		{
			// Laufe weiter wenn zwei Punkte gefunden wurden.
			if($currentObject == "..")
			{
				continue;
			}
			else 
			{
				// Baue den kompletten Pfad zur Klasse. Beispiel: /database/DatabaseConnector.class.php
				$currentClass = __GLOBAL_PACKAGE_PATH . $currentObject . "/" . $className . __GLOBAL_CLASS_POSTFIX;
				
				// Wenn die unter dem Pfad eine Datei existiert binde sie einmalig ein.
				if(file_exists($currentClass))
				{
					@require_once ($currentClass);
				}
			}
		}
	}
}

?>

Die datei, die die oben beschriebene datei Aufruft befindet sich in einem Unterordner des Hauptverzeichnisses "mycom" (mycom/functions). die Classloader im Verzeichnis "mycom/lib". Hat es vielleicht damit etwas zutun? Wenn ja, wie kann ich das korrigieren?

Wäre nett, wenn Ihr mir da helfen könntet.

Vielen Dank schonmal.

so far,
Christian
 
Die erste Fehlermeldung dürfte dir sagen, dass die Datei, die du versuchst zu laden, nicht dort ist, wo du versuchst sie zu laden. Die zweite Meldung dürfte dir auch sagen, dass read() keine Methode eines Objektes ist sondern eine einfache Funktion. Für weiteres siehe die Dokumentation von PHP.
 
Die zweite Meldung dürfte dir auch sagen, dass read() keine Methode eines Objektes ist sondern eine einfache Funktion. Für weiteres siehe die Dokumentation von PHP.

Nicht ganz. Die Fehlermeldung sagt dir, dass du versuchst eine Klassenfunktion aufzurufen, allerdings auf einem Nichtobjekt. Der Fehler ist in diesem Falle in Folgefehler, da die Instanz der Klasse dir nicht erstellt wird und somit auch keine Methoden der Klasse benutzt werden können.
 
Also nach mehreren Stunden wirsch im Code rumfuchzteln funktiunierts plötzlich. Fragt mich bitte nciht warum, ich hab selber keine Ahnung warums jetz geht und vorher nicht :P ich betrachte das daher als Erledigt. Danke für Eure hilfe :)
 
Zurück