Erstellung eigener Seiten Typen
Wenn Zend_Navigation_Page erweiter wird, besteht normalerweise keine
Notwendigkeit den Constructor oder die Methoden setOptions() oder
setConfig() zu überladen. Der Constructor der Seite nimmt einen einzelnen
Parameter, ein Array oder ein Zend_Config Objekt,
welches an setOptions() oder an setConfig() übergeben wird.
Diese Methoden rufen dann die set() Methode auf, welche Optionen in
native oder eigene Eigenschaften mappt. Wenn die Option internal_id angegeben
wird, dann wird zuerst nach einer Methode geschaut die setInternalId() heißt
und die Option wird an diese Methode übergeben wenn Sie existiert. Wenn die Methode nicht
existiert, wird die Option als eigene Eigenschaft der Seite gesetzt, und ist über
$internalId = $page->internal_id; oder
$internalId = $page->get('internal_id'); erreichbar.
Die einfachste eigene Seite
Das einzige Ding das eine eigene Seite implementieren muß ist die
getHref() Methode.
Eine eigene Seite mit Eigenschaften
Wenn Eigenschaften an eine erweiterte Seite angefügt werden, gibt es keine
Notwendigkeit setOptions() oder setConfig() zu
Überladen/Modifizieren.
_foo = $foo;
}
public function getFoo()
{
return $this->_foo;
}
public function setFooBar($fooBar)
{
$this->_fooBar = $fooBar;
}
public function getFooBar()
{
return $this->_fooBar;
}
public function getHref()
{
return $this->foo . '/' . $this->fooBar;
}
}
// Kann jetzt Erstellt werden mit
$page = new My_Navigation_Page(array(
'label' => 'Namen von Eigenschaften werden auf Setter gemappt',
'foo' => 'bar',
'foo_bar' => 'baz'
));
// ...oder
$page = Zend_Navigation_Page::factory(array(
'type' => 'My_Navigation_Page',
'label' => 'Namen von Eigenschaften werden auf Setter gemappt',
'foo' => 'bar',
'foo_bar' => 'baz'
));
]]>