Hallo,
ich habe ein Problem, bei dem ich nicht weiter komme - die Suche in google hat nichts für mich verwertbares geliefert ...
1.) Es gibt EINE funktionierende PHP Datei (die nichts includiert etc. und alle Bausteine in der Datei beinhaltet), die eine (abstrakte) Klasse definiert, welche u.a. aus drei Traits "zusammengesetzt" ist - nennen wir sie "geht.php". Die Traits werden ebenfalls in der Datei "geht.php" definiert (wie gesagt, keine includes)
2.) Ausführen der Datei "geht.php" funzt prima, alles geht wunderbar, keine Fehler.
3.) Einlesen der Datei mittels $_c=file_get_contents( "geht.php"), anwenden von $_d=php_strip_whitespace( $_c ) und schreiben des code mit neuem Namen, sagen wir "test.php"
file_put_contents( "test.php", $_d )
Wenn ich nun statt "geht.php" die Datei "test.php" aufrufe (in der autoappend includiere), so bekomme ich den Fehler
Fatal error: Cannot redeclare class SLT_V in <dir>\test.php on line 51
Ich habe den Code manuell wieder umgebrochen - es gibt in der Datei keine weitere "trait SLT_V".
Wenn ich in der autoprepend.php vor dem
include "test.php"
ausgebe
echo "..." . trait_exists( "SLT_V" ) . "+++\n"
ergibt das auch korrekt, wie erwartet "...+++".
[EDIT]
um sicher zu gehen, dass der Trait auch wirklich nicht existiert, habe ich um die gesamte Klassendefinition noch eine "if" gebaut:
if ( ! trait_exists( "SLT_V" ) )
{
echo "!!!!!!!!!!!!!!!!!!!!!!\n";
<code der den Fehler produziert>
}else
echo "????????????????\n";
}
Tja, und wie erwartet, kommt denn auch "!!!!!!!!!!!!!!!!!!!!!!!!!" vor dem Fehler ...
[/EDIT]
Was läuft da falsch?
ich habe ein Problem, bei dem ich nicht weiter komme - die Suche in google hat nichts für mich verwertbares geliefert ...
1.) Es gibt EINE funktionierende PHP Datei (die nichts includiert etc. und alle Bausteine in der Datei beinhaltet), die eine (abstrakte) Klasse definiert, welche u.a. aus drei Traits "zusammengesetzt" ist - nennen wir sie "geht.php". Die Traits werden ebenfalls in der Datei "geht.php" definiert (wie gesagt, keine includes)
2.) Ausführen der Datei "geht.php" funzt prima, alles geht wunderbar, keine Fehler.
3.) Einlesen der Datei mittels $_c=file_get_contents( "geht.php"), anwenden von $_d=php_strip_whitespace( $_c ) und schreiben des code mit neuem Namen, sagen wir "test.php"
file_put_contents( "test.php", $_d )
Wenn ich nun statt "geht.php" die Datei "test.php" aufrufe (in der autoappend includiere), so bekomme ich den Fehler
Fatal error: Cannot redeclare class SLT_V in <dir>\test.php on line 51
Ich habe den Code manuell wieder umgebrochen - es gibt in der Datei keine weitere "trait SLT_V".
Wenn ich in der autoprepend.php vor dem
include "test.php"
ausgebe
echo "..." . trait_exists( "SLT_V" ) . "+++\n"
ergibt das auch korrekt, wie erwartet "...+++".
[EDIT]
um sicher zu gehen, dass der Trait auch wirklich nicht existiert, habe ich um die gesamte Klassendefinition noch eine "if" gebaut:
if ( ! trait_exists( "SLT_V" ) )
{
echo "!!!!!!!!!!!!!!!!!!!!!!\n";
<code der den Fehler produziert>
}else
echo "????????????????\n";
}
Tja, und wie erwartet, kommt denn auch "!!!!!!!!!!!!!!!!!!!!!!!!!" vor dem Fehler ...
[/EDIT]
Was läuft da falsch?
Kommentar