Pear::Authのコンストラクター | PHP初めて見ました。

Pear::Authのコンストラクター

さて、早速ソースコードを拝見。


ちなみに自分、プログラミング暦1年ぐらいの初心者なので


( ̄_ ̄ i) な感じですw


function Auth($storageDriver, $options = ''', $loginFunction =''', $showLogin = true)


パラメータをチェックしてみました。


$storageDriverは認証するにあたってユーザー名とパスワードを何で管理するか、ストレージを選択します。


配列を使って認証させたいなら「Array」


データベース(PEAR::DB)を使って認証させたいなら「DB」を指定してあげます。


ちなみに、Containerフォルダーの中を覗いてみると、ストレージドライバーごとのファイルが存在知ることが分かりました。


パラメータの$storageDriverは、メンバ変数、$this->storage_driverに代入されます。


if (is_object($storageDriver)) {
    $this->storage =& $storageDriver;
    $this->storage->_auth_obj =& $this;
} else {

    ↓ここで代入される。  
$this->storage_driver = $storageDriver;
$this->storage_options =& $options;
}


次に$optionsです。


Auth 自身およびストレージドライバの両方についてのオプションを含む配列を指定してあげます。


簡単に言えば、認証システムを使うにあたってのオプションを指定してあげるだけです。


パラメータの$optionsは、$this->applyAuthOptions($options);によって、配列の値をメンバー変数に代入させています。


applyは適用と言う意味で、日本語に直訳するとオプションを適用させるという意味です。


applyAuthOptionsメソッドは


function &applyAuthOptions(&$options)
{

    //$optionsが配列の場合
    if(is_array($options)){

      


        //$_SESSIONのキー
        if (!empty($options['sessionName'])) {
            //メンバ変数に代入して$options['sessionName']を削除

            $this->_sessionName = $options['sessionName'];
            unset($options['sessionName']);
        }


        if (isset($options['allowLogin'])) {
            $this->allowLogin = $options['allowLogin'];
            unset($options['allowLogin']);
        }


        
        if (!empty($options['postUsername'])) {
            $this->_postUsername = $options['postUsername'];
            unset($options['postUsername']);
        }
        if (!empty($options['postPassword'])) {
            $this->_postPassword = $options['postPassword'];
            unset($options['postPassword']);
        }
        if (isset($options['advancedsecurity'])) {
            $this->advancedsecurity = $options['advancedsecurity'];
            unset($options['advancedsecurity']);
        }
        if (isset($options['enableLogging'])) {
            $this->enableLogging = $options['enableLogging'];
            unset($options['enableLogging']);
        }
        if (isset($options['regenerateSessionId']) && is_bool($options['regenerateSessionId'])) {
            $this->regenerateSessionId = $options['regenerateSessionId'];
        }
    }


return($options);

}