Auth_OpenID_Association::deserialize PHP Method

deserialize() static public method

Parse an association as stored by serialize(). This is the inverse of serialize.
static public deserialize ( $class_name, string $assoc_s ) : Auth_OpenID_Association
$assoc_s string Association as serialized by serialize()
return Auth_OpenID_Association $result instance of this class
    static function deserialize($class_name, $assoc_s)
    {
        $pairs = Auth_OpenID_KVForm::toArray($assoc_s, $strict = true);
        $keys = array();
        $values = array();
        foreach ($pairs as $key => $value) {
            if (is_array($value)) {
                list($key, $value) = $value;
            }
            $keys[] = $key;
            $values[] = $value;
        }
        $class_vars = get_class_vars($class_name);
        $class_assoc_keys = $class_vars['assoc_keys'];
        sort($keys);
        sort($class_assoc_keys);
        if ($keys != $class_assoc_keys) {
            trigger_error('Unexpected key values: ' . var_export($keys, true), E_USER_WARNING);
            return null;
        }
        $version = $pairs['version'];
        $handle = $pairs['handle'];
        $secret = $pairs['secret'];
        $issued = $pairs['issued'];
        $lifetime = $pairs['lifetime'];
        $assoc_type = $pairs['assoc_type'];
        if ($version != '2') {
            trigger_error('Unknown version: ' . $version, E_USER_WARNING);
            return null;
        }
        $issued = intval($issued);
        $lifetime = intval($lifetime);
        $secret = base64_decode($secret);
        return new $class_name($handle, $secret, $issued, $lifetime, $assoc_type);
    }

Usage Example

Exemplo n.º 1
0
 function test_me()
 {
     $issued = time();
     $lifetime = 600;
     $assoc = new Auth_OpenID_Association('handle', 'secret', $issued, $lifetime, 'HMAC-SHA1');
     $s = $assoc->serialize();
     $assoc2 = Auth_OpenID_Association::deserialize('Auth_OpenID_Association', $s);
     if ($assoc2 === null) {
         $this->fail('deserialize returned null');
     } else {
         $this->assertTrue($assoc2->equal($assoc));
     }
 }
All Usage Examples Of Auth_OpenID_Association::deserialize