PfadOK, open_basedir(pfad.nicht_vorhanden) =KritischerFehler

Hab einen Fehler mit open_basedir, dabei wollte ich doch nur gucken ob eine Datei existiert …

anscheinend will er in der autoload-funktion eine Datei öffnen:
-> ./SYSTEM/tools/plugins/DefaultClass
Obwohl
-> ./SYSTEM/tools/plugins
bereits eine Datei ist.

Also soll er dirname(Datei) öffnen -> die Datei mit der Klasse was kein Problem ist.

[quote]Error: /users/qooqle/www/FRAMEWORLD/SYSTEM/tools/index : 34
[2]: is_file() [function.is-file]: open_basedir restriction in effect.
File(./SYSTEM/tools/plugins/DefaultClass) is not within the allowed path(s):
[…][/quote]

— Fazit: er giebt mir eine Fehlermeldung die ich folgendermaßen nicht abfangen kann: —

[code]<?php namespace tools;

[…]

function is_file
(	$file
){
	try
	{	@\is_file($file);
	}
	catch
	(	Exception $e
	){
return
		false;
	}
return
	true;
}

[…]

?>[/code]

hi,

is_file gibt ja keine exception bei einem fehler zurück. Du müsstest eine werfen um diese auch auffangen zu können:

if(is_file($file) !== true) { throw new Exception('w00t? i haz an err0r'); }

ciao

Danke für die Antwort,
aber ich wollte ja eigentlich auch keine Fehlermeldung abfangen, sondern alle möglichen Ursachen ausschließen.

… Und diese doofe Fehlermeldung vermeiden, die an meinen error_handler weitergegeben wird …

Hoffe ich konnte auch alle Missverständnisse jetzt ausschließen.

Die getigerten Fehlermeldungen können mit einem @-Zeichen unterdrückt werden - was macht denn der Backslash da?

lg

@thorr,

Das @ ist schon drinn.

Der Backslash ist für die Namespaces - schätzen wir uns glücklich, dass wir PHP 5.3 haben.

Ohne Backshlash ruft sich die Funktion immer und immer wieder auf.
So greift sie auf die Standart-Funktion des Standart-Namespaces wo sie noch nicht überschrieben ist zu.