Moin moin,
kleine Diskussion zum Wochenende. Ich frage mich gerade, wie ich Type Hinting und Vererbung unter einen Hut bekomme. Da PHP kein Methoden-Overloading beherrscht, bekomme ich immer nette Strict-Fehler. Das ist zwar nicht dramatisch, ich will aber trotzdem schönen Code produzieren.
Hier mal ein Beispiel:
So. Wie löst Ihr solche Probleme? Assertions? instanceof und Exceptions? Strict-Error Ignorieren? Irgendwie ist ja Vererbung bzw. Hinting sonst nicht viel wert, oder?
Mein konkreter Anwendungsfall ist die ABbildung von Formularelementen auf entspr. Zugriffsobjekte. myElementIface könnte hier ein Formular-Basiselement repräsentieren und mySpecialElementIface z.B. ein Radiobox-Element mit eigenen Eigeneschaften.
kleine Diskussion zum Wochenende. Ich frage mich gerade, wie ich Type Hinting und Vererbung unter einen Hut bekomme. Da PHP kein Methoden-Overloading beherrscht, bekomme ich immer nette Strict-Fehler. Das ist zwar nicht dramatisch, ich will aber trotzdem schönen Code produzieren.
Hier mal ein Beispiel:
PHP-Code:
<?php
interface myElementIface
{
}
interface mySpecialElementIface
{
function doSpecial ();
}
class myElement implements myElementIface
{
function doSmthg ()
{
}
}
class myElementGroup
{
function addElement (myElementIface $element)
{
}
}
class mySpecialElement extends myElement implements mySpecialElementIface
{
function doSpecial ()
{
}
}
class mySpecialElementGroup extends myElementGroup
{
function addElement (mySpecialElementIface $element) // wird einen Stict-Error erzeugen
{
parent::addElement ($element);
$element->doSpecial ();
}
}
Mein konkreter Anwendungsfall ist die ABbildung von Formularelementen auf entspr. Zugriffsobjekte. myElementIface könnte hier ein Formular-Basiselement repräsentieren und mySpecialElementIface z.B. ein Radiobox-Element mit eigenen Eigeneschaften.
Kommentar