[Zend Framework] Zend_View: url ヘルパークラスでリンクを生成する

Zend_View に付属しているヘルパークラスのひとつです。

記述が長くなりますが、起動する module/controller/action が明確になるメリットもあるので、リンクの記述は必ずヘルパーを使った方が良いと感じました。

参考サイト

基本の書き方

News コントローラの index アクションにリンクをはる例。
a タグのリンクと挙動は変わりません。

application/views/scripts/index/index.phtml
<li><a href="<?= $this->url(
        array('controller' => 'news',
              'action'     => 'list',
              'module'     => 'default'),
        'default');
        ?>">ニュース一覧</a></li>

最後の default がなにげに重要で、後述のルーティングを変更している場合に指定がないと、リンク先が変わってしまいました。
なお、option がいまいち理解できていません。

ルーティングを変更している場合

application/configs/application.ini
resources.router.routes.login.type = "Zend_Controller_Router_Route_Static"
resources.router.routes.login.route = "login"
resources.router.routes.login.defaults.module = "default"
resources.router.routes.login.defaults.controller = "auth"
resources.router.routes.login.defaults.action = "index"

コントローラ、アクションを指定することに変わりはありませんが、loginという名前を指定することによって、ルーティングの設定が反映されるようになります。

application/views/scripts/index/index.phtml
        <a class="btn btn-large btn-success" href="<?=
        $this->url(
            array('controller' => 'auth',
                  'action'     => 'index',
                  'module'     => 'default'),
            'login', true);
        ?>">ログインする</a>