schildi: require / include innerhalb einer klasse

hallo,

ich baue seiten auf in dem vershciedene template stücke zusammengeschustert werden und jedes template hat sein action file in form einer inkludierten php-datei. die inkludiererei geschieht innerhalb einer klasse.

das geht eigentlich auch alles - bloß dass es mir scheint dass durch dieses vorgehen php-fehlermeldungen nicht mehr ausgegeben werden - irgendwo verschluckt werden. wenn ich ein fehler in einem der zu inkludierenden php-dateien habe, bekomme ich nur eine weisse seite geliefert - ohne fehler - dass auch wenn ich komplett alle php-fehler ausgeben lasse. auch in der log-datei ist nichts zu sehen.

hängt das mit dem inkludieren innerhalb der klasse zusammen?
wie kann ich das problem lösen?

danke!!

  1. echo $begrüßung;

    wenn ich ein fehler in einem der zu inkludierenden php-dateien habe, bekomme ich nur eine weisse seite geliefert - ohne fehler - dass auch wenn ich komplett alle php-fehler ausgeben lasse. auch in der log-datei ist nichts zu sehen.

    Webserver liefern keine Farben. Meinst du mit "weiße Seite", dass das PHP eventuell stirbt, bevor es dazu kommt, etwas auszugeben, oder hast du nur nicht das bis dato Ausgelieferte in der Quelltext-Ansicht angeschaut? Gegebenenfalls wäre auch die Ausgabe der HTTP-Header von Interesse (z.B. für Firefox mit der livehttpheaders-Extension)

    hängt das mit dem inkludieren innerhalb der klasse zusammen?
    wie kann ich das problem lösen?

    Da hilft meiner Erfahrung nach nur, sich langsam an das Problem vorzutasten. Das kann man von vorn oder von hinten tun. Von vorn: Füge solange Code hinzu bis das Problem auftritt. Von hinten: Entferne solange Code, bis das Problem weg ist. Versuche dann, das Problem mit dem kleinstmöglichen Code nachzustellen.
    Manchmal lässt es sich damit nicht reproduzieren, weil man doch irgendwas anders gemacht hat als im Original. Dann füge schrittweise den Rest hinzu und hoffe, dass es so bleibt :-)

    echo "$verabschiedung $name";

    1. Webserver liefern keine Farben. Meinst du mit "weiße Seite", dass das PHP eventuell stirbt, bevor es dazu kommt, etwas auszugeben, oder hast du nur nicht das bis dato Ausgelieferte in der Quelltext-Ansicht angeschaut?

      ich meine damit, dass absolut keine fehlerausgabe stattfindet. auch nicht im logfile :(

      --

      das heisst aber, dass ein inkludieren von php-code innerhalb von klassen prinzipiell ohne einschränkungen erlaubt ist?

      1. echo $begrüßung;

        das heisst aber, dass ein inkludieren von php-code innerhalb von klassen prinzipiell ohne einschränkungen erlaubt ist?

        Die Einschränkung besteht darin, dass Strukturen auch ohne den zu inkludierenden Teil vollständig vorhanden sein müssen, und auch der inkludierte Teil keine unvollendeten Strukturen enthalten darf. Strukturen sind Funktionen und Klassen und Kontrollstrukturen wie if, while, for, switch, usw. Eine Klassendeklaration kann beispielsweise nicht in einer Datei angefangen und in anderen Dateien fortgesetzt werden. Aber innerhalb einer Methode kann anderer HTML- und PHP-Code nachgeladen werden, der dann im Kontext der Methode eingefügt bzw. ausgeführt wird.

        echo "$verabschiedung $name";