Creole und PHP 5.2.4 verstehen sich nicht
Geschrieben von Dejan Spasic • Monday, 17. September 2007 • Kategorie: PHP , Symfony • Kommentare (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]);
}
Für den Fall das einige Leute immer noch nicht begriffen haben warum symfony so rockt, hat Thierry Schellenbach die 10, seiner Meinung nach, wichtigsten Gründe aufgezählt. Und ich kann nur dazu sagen, der hat ja so Recht 
