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'
));
]]>