カスタム・ページ・タイプの作成
Zend_Navigation_Pageを拡張するとき、
通常は、コンストラクタ、メソッドsetOptions()、
またはsetConfig()をオーバーライドする必要はありません。
ページ・コンストラクタは単一のパラメータ、Array、
またはZend_Configオブジェクトを受け取ります。
そして、それはそれぞれsetOptions()
またはsetConfig()に渡されます。
それらのメソッドは次にset()メソッドを呼びます。
そして、オプションをネイティブまたはカスタムのプロパティにマップします。
もし、オプションinternal_idが与えられたら、
メソッドはsetInternalId()というメソッドを最初に探して、
それが存在するならばこのメソッドにオプションを渡します。
メソッドが存在しなければ、オプションはページのカスタム・プロパティとしてセットされて、
$internalId = $page->internal_id;または
$internalId = $page->get('internal_id');を通じてアクセスできます。
もっとも単純なカスタム・ページ
カスタム・ページ・クラスで実装する必要がある唯一のものは、
getHref()メソッドです。
プロパティ付のカスタム・ページ
拡張したページにプロパティを追加するとき、
setOptions()やsetConfig()
メソッドをオーバーライドしたり、修正する必要はありません。
_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;
}
}
//これで、利用して構築できます
$page = new My_Navigation_Page(array(
'label' => 'Property names are mapped to setters',
'foo' => 'bar',
'foo_bar' => 'baz'
));
//または
$page = Zend_Navigation_Page::factory(array(
'type' => 'My_Navigation_Page',
'label' => 'Property names are mapped to setters',
'foo' => 'bar',
'foo_bar' => 'baz'
));
]]>