ログインチェックをプラグインにて行う2

今回の認証クラスでは、DBを使って認証処理を行っています。
サンプルソースは以下になります。

説明を日本語で書くと、余計にわかりづらいくなってしまいましのたで、
コードとコメントを見て理解していただけたらと思います。

Zend_Loader::loadClass('Zend_DB_Table_Abstract');
Zend_Loader::loadClass('Zend_Auth_Adapter_DbTable');
Zend_Loader::loadClass('Zend_Auth_Storage_Session');

class authModel
{
 private $_authStorage;

 public function __construct()
 {
  $config = new Zend_Config_Ini('config/system.ini', 'default');
  // ログイン情報を格納するセッションを指定
  $this->_authStorage
   = new Zend_Auth_Storage_Session($config->session);
 }

 public function login($post)
 {
  $db = Zend_Db_Table_Abstract::getDefaultAdapter();
  $authAdapter = new Zend_Auth_Adapter_DbTable($db);
  $authAdapter->setTableName('Accounts')
         ->setIdentityColumn('login_id')   // IDカラムを指定
         ->setCredentialColumn('password'); // 認証用カラムを指定

  // 上記で指定したカラムに、認証したい値を設定
  $authAdapter->setIdentity($post['login_id']) 
        ->setCredential($post['password']); 

  // 認証実行
  $result = $authAdapter->authenticate();

  if ($result->isValid()){
   // 認証OKとなったレコードから、login_idとstatusを取りだす
   $row = $authAdapter->getResultRowObject(array(login_id, status));
   // ログイン情報格納用セッションに取得した情報を設定する
   $this->_authStorage->write($row);
  }

  return $result;
 }

 public function logout()
 {
  $this->_authStorage->clear();
 }

 public function isAuth()
 {
  return (isset($this->get()->login_id) && isset($this->get()->status));
 }

 public function get()
 {
  return $this->_authStorage->read();
 }
}

ログイン情報を設定するセッションに、デフォルト(Zend_Auth)を利用したり、
セッションに設定する情報が、認証に利用したID(上記だとlogin_id)だけでいい場合は、
より簡潔に記述することができます。

デフォルトのセッションを利用する場合は、コンストラクタ内の処理は必要ありません。
セッションに設定する情報が、認証に利用したIDのみでいい場合は、
認証処理を実行してOKだった場合に、自動的に設定されていますので、
わざわざ設定する処理を記述する必要はありません。