function getAssociation($server_url, $handle = null)
    {
        if (!$this->active) {
            trigger_error("FileStore no longer active", E_USER_ERROR);
            return null;
        }

        if ($handle === null) {
            $handle = '';
        }

        // The filename with the empty handle is a prefix of all other
        // associations for the given server URL.
        $filename = $this->getAssociationFilename($server_url, $handle);

        if ($handle) {
            return $this->_getAssociation($filename);
        } else {
            $association_files =
                Auth_OpenID_FileStore::_listdir($this->association_dir);
            $matching_files = array();

            // strip off the path to do the comparison
            $name = basename($filename);
            foreach ($association_files as $association_file) {
                $base = basename($association_file);
                if (strpos($base, $name) === 0) {
                    $matching_files[] = $association_file;
                }
            }

            $matching_associations = array();
            // read the matching files and sort by time issued
            foreach ($matching_files as $full_name) {
                $association = $this->_getAssociation($full_name);
                if ($association !== null) {
                    $matching_associations[] = array($association->issued,
                                                     $association);
                }
            }

            $issued = array();
            $assocs = array();
            foreach ($matching_associations as $key => $assoc) {
                $issued[$key] = $assoc[0];
                $assocs[$key] = $assoc[1];
            }

            array_multisort($issued, SORT_DESC, $assocs, SORT_DESC,
                            $matching_associations);

            // return the most recently issued one.
            if ($matching_associations) {
                list(, $assoc) = $matching_associations[0];
                return $assoc;
            } else {
                return null;
            }
        }
    }
function getAssociation($server_url, $handle = null)
    {
        if (!$this->active) {
            trigger_error("FileStore no longer active", E_USER_ERROR);
            return null;
        }

        if ($handle === null) {
            $handle = '';
        }

        // The filename with the empty handle is a prefix of all other
        // associations for the given server URL.
        $filename = $this->getAssociationFilename($server_url, $handle);

        if ($handle) {
            return $this->_getAssociation($filename);
        } else {
            $association_files =
                Auth_OpenID_FileStore::_listdir($this->association_dir);
            $matching_files = array();

            // strip off the path to do the comparison
            $name = basename($filename);
            foreach ($association_files as $association_file) {
                $base = basename($association_file);
                if (strpos($base, $name) === 0) {
                    $matching_files[] = $association_file;
                }
            }

            $matching_associations = array();
            // read the matching files and sort by time issued
            foreach ($matching_files as $full_name) {
                $association = $this->_getAssociation($full_name);
                if ($association !== null) {
                    $matching_associations[] = array($association->issued,
                                                     $association);
                }
            }

            $issued = array();
            $assocs = array();
            foreach ($matching_associations as $key => $assoc) {
                $issued[$key] = $assoc[0];
                $assocs[$key] = $assoc[1];
            }

            array_multisort($issued, SORT_DESC, $assocs, SORT_DESC,
                            $matching_associations);

            // return the most recently issued one.
            if ($matching_associations) {
                list(, $assoc) = $matching_associations[0];
                return $assoc;
            } else {
                return null;
            }
        }
    }
function getAssociation ( $ server_url , $ handle = null ) { if ( ! $ this -> active ) { trigger_error ( "FileStore no longer active" , E_USER_ERROR ) ; return null ; } if ( $ handle === null ) { $ handle = '' ; } // The filename with the empty handle is a prefix of all other // associations for the given server URL. $ filename = $ this -> getAssociationFilename ( $ server_url , $ handle ) ; if ( $ handle ) { return $ this -> _getAssociation ( $ filename ) ; } else { $ association_files = Auth_OpenID_FileStore :: _listdir ( $ this -> association_dir ) ; $ matching_files = array ( ) ; // strip off the path to do the comparison $ name = basename ( $ filename ) ; foreach ( $ association_files as $ association_file ) { $ base = basename ( $ association_file ) ; if ( strpos ( $ base , $ name ) === 0 ) { $ matching_files [ ] = $ association_file ; } } $ matching_associations = array ( ) ; // read the matching files and sort by time issued foreach ( $ matching_files as $ full_name ) { $ association = $ this -> _getAssociation ( $ full_name ) ; if ( $ association !== null ) { $ matching_associations [ ] = array ( $ association -> issued , $ association ) ; } } $ issued = array ( ) ; $ assocs = array ( ) ; foreach ( $ matching_associations as $ key => $ assoc ) { $ issued [ $ key ] = $ assoc [ 0 ] ; $ assocs [ $ key ] = $ assoc [ 1 ] ; } array_multisort ( $ issued , SORT_DESC , $ assocs , SORT_DESC , $ matching_associations ) ; // return the most recently issued one. if ( $ matching_associations ) { list ( , $ assoc ) = $ matching_associations [ 0 ] ; return $ assoc ; } else { return null ; } } }
Retrieve an association. If no handle is specified, return the
association with the most recent issue time.

@param string $server_url
@param string|null $handle
@return Auth_OpenID_Association|mixed|null
Retrieve an association . If no handle is specified return the association with the most recent issue time .