PHP Bug 48139

Geschrieben von Dejan Spasic • Monday, 4. May 2009 • Kategorie: PHP , QuerbeetKommentare (0)

Der Bugreport 48139. Ich weiss nicht was ihr davon haltet, aber ich habe mich köstlich amüsiert.

Tags für diesen Artikel: ,

PHP 5.2.4 und symfony

Geschrieben von Dejan Spasic • Sunday, 23. September 2007 • Kategorie: PHP , SymfonyKommentare (0)

PHP 5.2.4 macht symfony einen Strich durch die Rechnung. Nicht das Creole durch den Bugfix #41964 nicht mehr richtig funktioniert, siehe Creole und PHP 5.2.4 verstehen sich nicht, es ist es auch die Funktion glob die nicht mehr mitspielt.

In PHP 5.2.4 wurde nun der Bug #41655 gefixed, womit die Direktive open_basedir übergangen werden konnte. Leider haben es die Entwickler etwas zu Gut gemeint, wenn man sich den beitrag durchliest http://bugs.php.net/bug.php?id=41655#c131144. Es ist aber so, dass z.B. sfLoader::getConfigPaths genau so ein Muster einsetzt um die Konfigurationsdateien der Plugins auszulesen. Dementsprechend werden bei eingeschaltetem safe_mode und gesetztem open_basedir Direktiven Warnings geworfen (siehe php 5.2.4, open base dir, glob). Dieser Fehler wurde zwar von den Entwicklern als Fehler anerkannt und ist mittlerweile behoben worden (siehe http://news.php.net/php.cvs/46229), doch müssen die symfony Nutzer nun wohl oder übel eine Runde aussetzen.

Tags für diesen Artikel: , ,

Creole und PHP 5.2.4 verstehen sich nicht

Geschrieben von Dejan Spasic • Monday, 17. September 2007 • Kategorie: PHP , SymfonyKommentare (0)

In einem Artikel Warning about PHP 5.2.4 and Creole wird der Einsatz von Creole in Verbindung mit der PHP Version >= 5.2.4 gewarnt. Dadurch das der PHP Bug #41964 gefixed wurde, funktioniert die Methode MySQLResultSet::getTimestamp nicht mehr so wie gedacht. Hat z.B. die Spalte den Wert 0000-00-00 00:00:00, liefert strtotime nun false zurück. Vor der aktuellen PHP Version wurde 943905600 zurückgegeben, was als Datum 1999-11-30 entspricht. Wie dem auch sei, dadurch das false zurückgegeben wird, wird dementsrprechen eine Ausnahme geworfen.

Der Author empfiehlt diesen Hack einzufügen.

if ($this->fields[$column] == '0000-00-00 00:00:00') {
    // If the value is  ‘0000-00-00 00:00:00′, set it back to the value strtotime() returned before PHP 5.2.4
    $ts = 943916400;
}
else {
    $ts = {FNAMEL}">strtotime($this->fields[$column]);
}
 

Meiner Meinung nach, sollte zusätzlich noch nur nach das Datum ohne Uhrzeit geprüft werden.

if ($this->fields[$column] == '0000-00-00 00:00:00'
        || $this->fields[$column] == '0000-00-00') {
    // If the value is  ‘0000-00-00 00:00:00′, set it back to the value strtotime() returned before PHP 5.2.4
    $ts = 943916400;
}
else {
    $ts = {FNAMEL}">strtotime($this->fields[$column]);
}
Tags für diesen Artikel: , , ,