sfGuardPluginの設定続き4:login nameが表示できるようになりました

logoutしている時に、

echo $sf_user->getUserName();

の表示がおかしかった件が解決できました。

まず、Dinoさんの動画にちょうど良さそうなのがあったので、勉強。
http://openlab.dino.co.jp/2008/05/09/231348244.html#more-244

issetだけじゃなくて、is_objectというのがある。
型も含めた比較は ===で(打つのが面倒)。
==で、配列の中身も含めた比較が出来る。
nullと falseはちょっと違う。

という事が分かりました。

is_objectは $sf_user->getUserName()を調べても駄目で、$sf_user->getGuardUser()を調べるとうまくいきました。で、全体の layoutの右メニューを直して、ログイン状態を表示するようにしました。
/var/www/podtv/apps/frontend/templates/layout.php

                <b>Menu</b><br />
<br />
                <b>会員情報</b><br />
<?php
                if ( is_object( $sf_user->getGuardUser())){
                        echo "ようこそ " .$sf_user->getUsername() ."さん<br />";
                        echo link_to('logoutする', '@sf_guard_signout') ."<br />";
                } else {
                        echo "ようこそ Guestさん<br />";
                        echo link_to('loginする', '@sf_guard_signin') ."<br />";
                }
?>

ついでに、sfGuardPluginの初期データに userと guestを追加。
/var/www/podtv/plugins/sfGuardPlugin/data/fixtures/fixtures.yml

sfGuardUser:
  admin:
    username:       admin
    password:       xxxxxxxxx
    is_super_admin: true
  user:
    username:       user
    password:       user
  guest:
    username:       guest
    password:       guest

sfGuardPermission:
  admin:
    name:           admin
    description:    Administrator permission
  user:
    name:           user
    description:    general user permission
  guest:
    name:           guest
    description:    guest permission

sfGuardGroup:
  admin:
    name:           admin
    description:    Administrator group
  user:
    name:           user
    description:    general user group
  guest:
    name:           guest
    description:    guest group

sfGuardGroupPermission:
  admin:
    group_id:       admin
    permission_id:  admin

sfGuardUserGroup:
  admin:
    group_id:       admin
    user_id:        admin

これで、admin, user, guestの3つのアカウントが表示されるようになりました。やっとシステムっぽい雰囲気が出てきました。

ただ、作ってから思ったのですが、ID : guest PASS:guestというユーザーを作るのは、なんか辺ですね。ログインしていない状態の時が guestのはずなので、guestという名前でログインするのはおかしい感じです。