Apache crasht mit Zend Framework RC 1.7 bei Benutzung von Zend_View_Helper_FormElement

Nun musste ich die letzte halbe Stunde einen Bug im Zend Framwork 1.7 RC1 fixen.
Problem war folgendes:

$form = new Zend_Form();
$form->setName('someFormName');
$form->addElement(new Zend_Form_Element_Text('id'));

Sobald der Code-Abschnitt ausgeführt wird, stürzt der komplette Apache ab. Nach dem Verfolgen der einzelnen Methoden-Aufrufe, fand ich die Stelle, die daran schuld ist. In Zend_View_Helper_FormElement Zeile 105 wird folgendes gemacht:

if (isset($info['attribs']['id'])) {
  $info['id'] = (string)$info['attribs']['id'];
}

Da aber ‘id’ in dem Sinne meinem Zend_Form_Element_Text entspricht, wird nun das komplette Objekt zum String gecastet. Dies ist nicht Sinn der Sache und führt dazu (trotz toString()-Implementierung), dass PHP (5.2.1) den Code falsch interpretiert und der Apache (2.0.61) abschmiert.

Lösung: Entweder den Code des ZFs so patchen, dass als name-Attribut nicht der Wert ‘id’ benutzt werden darf oder aber einfach selbst nicht mehr den Wert ‘id’ benutzen.

In den ZF-Bugtracker habe ich das bereits eingetragen: http://framework.zend.com/issues/browse/ZF-3825.

Leave a reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>