Mailinglisten-Archive |
Hi Sascha,
Sascha Grossenbacher wrote:
> Doch, ausgeführt wird der Destruktor vermutlich schon, aber es gibt einige kleine Probleme mit Destruktoren bei globalen Objekten :)
> Diese werden erst sehr spät ausgeführt, zu diesem Zeitpunkt "befindet" sich PHP nicht mehr in deinem Verzeichnis sondern im Server Root, findet also vermutlich die Datei nicht mehr.
> Siehe: http://ch2.php.net/manual/de/language.oop5.decon.php#71107
Das hatte ich auch gelesen und testweise mal mit mkdir ein Verzeichnis
erstellt in __destruct, mit dem Ergebnis, dass mit mod_php kein
Verzeichis erstellt wird und mit PHP als CGI im Webroot das
entsprechende Verzeichnis erscheint.
function __destruct()
{
// das sollte ja jetzt im Webroot erstellt werden, egal
// ob PHP als CGI oder PHP als mod_php
// Ergebnis: Es wird nur bei PHP als CGI ein Verzeichnis
// im Webroot erstellt
mkdir( "Testverzeichnis" );
}
Mit echo, print_r usw. kann ja hier nicht mehr gearbeitet werden, da der
output buffer zu diesem Zeitpunkt schon geflusht ist, daher hab ich
zum Testen ein Verzeichnis erstellt.
Also mal so generell gefragt:
Funktioniert __destruct mit mod_php im Allgemeinen, also setzt Ihr das
ein? Ich meine, wenn mit dem Destruktor z.B. Datenbankverbindungen
geschlossen werden, kann man schlecht nachvollziehen, ob das wirklich
gemacht wurde - oder?
Wenn ja liegt der Fehler bei mir, wovon ich mal ausgehe (aber wo?).
Wenn nein - BUG? Hinweise?
Ich habe jetzt PHP 5.2.0 und PHP 5.2.1 auf zwei unterschiedlichen
Systemen getestet (Slackware(Apache 2.2.0) und Ubuntu(Apache 2.0.55)),
beide male PHP selber kompiliert mit:
'./configure' \
'--with-apxs2=/usr/bin/apxs2' \
'--enable-force-cgi-redirect' \
'--enable-fastcgi' \
'--enable-sqlite-utf8' \
'--enable-soap' \
'--with-tidy' \
'--with-mysql=/usr' \
'--with-mysqli=/usr/bin/mysql_config' \
'--enable-ftp' \
'--with-zlib-dir' \
'--enable-zip' \
'--with-interbase=/usr/lib/firebird2' \
'--with-gettext' \
'--enable-versioning' \
'--enable-sockets' \
'--enable-pcntl' \
'--with-openssl=/usr' \
'--with-iconv' \
'--enable-mbstring=all' \
'--enable-mbregex' \
'--enable-bcmath' \
'--enable-shmop' \
'--with-curl' \
'--with-kerberos' \
>
> Gruss Sascha
Gruss Andi
php::bar PHP Wiki - Listenarchive