PHP Class Auth_Yadis_Yadis

First, require this library into your program source:
  require_once "Auth/Yadis/Yadis.php";
To perform Yadis discovery, first call the "discover" method statically with a URI parameter:
  $http_response = array();
 $fetcher = Auth_Yadis_Yadis::getHTTPFetcher();
 $yadis_object = Auth_Yadis_Yadis::discover($uri,
                                   $http_response, $fetcher);
If the discovery succeeds, $yadis_object will be an instance of {@link Auth_Yadis_Yadis}. If not, it will be null. The XRDS document found during discovery should have service descriptions, which can be accessed by calling
  $service_list = $yadis_object->services();
which returns an array of objects which describe each service. These objects are instances of Auth_Yadis_Service. Each object describes exactly one whole Service element, complete with all of its Types and URIs (no expansion is performed). The common use case for using the service objects returned by services() is to write one or more filter functions and pass those to services():
  $service_list = $yadis_object->services(
                              array("filterByURI",
                                    "filterByExtension"));
The filter functions (whose names appear in the array passed to services()) take the following form:
  function myFilter($service) {
Query $service object here.  Return true if the service
matches your query; false if not.
 }
This is an example of a filter which uses a regular expression to match the content of URI tags (note that the Auth_Yadis_Service class provides a getURIs() method which you should use instead of this contrived example):
 function URIMatcher($service) {
     foreach ($service->getElements('xrd:URI') as $uri) {
         if (preg_match("/some_pattern/",
                        $service->parser->content($uri))) {
             return true;
         }
     }
     return false;
 }
The filter functions you pass will be called for each service object to determine which ones match the criteria your filters specify. The default behavior is that if a given service object matches ANY of the filters specified in the services() call, it will be returned. You can specify that a given service object will be returned ONLY if it matches ALL specified filters by changing the match mode of services():
  $yadis_object->services(array("filter1", "filter2"),
                         SERVICES_YADIS_MATCH_ALL);
See {@link SERVICES_YADIS_MATCH_ALL} and {@link SERVICES_YADIS_MATCH_ANY}. Services described in an XRDS should have a library which you'll probably be using. Those libraries are responsible for defining filters that can be used with the "services()" call. If you need to write your own filter, see the documentation for {@link Auth_Yadis_Service}.
显示文件 Open project: openid/php-openid Class Usage Examples

Public Methods

Method Description
_getContentType ( $content_type_header )
_getHeader ( $header_list, $names )
curlPresent ( )
discover ( string $uri, Auth_Yadis_HTTPFetcher $fetcher, array $extra_ns_map = null, integer $timeout = 20 ) : mixed This should be called statically and will build a Yadis instance if the discovery process succeeds. This implements Yadis discovery as specified in the Yadis specification.
getHTTPFetcher ( $timeout = 20 ) Returns an HTTP fetcher object. If the CURL extension is present, an instance of {@link Auth_Yadis_ParanoidHTTPFetcher} is returned. If not, an instance of {@link Auth_Yadis_PlainHTTPFetcher} is returned.

Method Details

_getContentType() static public method

static public _getContentType ( $content_type_header )

_getHeader() static public method

static public _getHeader ( $header_list, $names )

curlPresent() static public method

static public curlPresent ( )

discover() static public method

This should be called statically and will build a Yadis instance if the discovery process succeeds. This implements Yadis discovery as specified in the Yadis specification.
static public discover ( string $uri, Auth_Yadis_HTTPFetcher $fetcher, array $extra_ns_map = null, integer $timeout = 20 ) : mixed
$uri string The URI on which to perform Yadis discovery.
$fetcher Auth_Yadis_HTTPFetcher An instance of a Auth_Yadis_HTTPFetcher subclass.
$extra_ns_map array An array which maps namespace names to namespace URIs to be used when parsing the Yadis XRDS document.
$timeout integer An optional fetcher timeout, in seconds.
return mixed $obj Either null or an instance of Auth_Yadis_Yadis, depending on whether the discovery succeeded.

getHTTPFetcher() static public method

If Auth_Yadis_CURL_OVERRIDE is defined, this method will always return a {@link Auth_Yadis_PlainHTTPFetcher}.
static public getHTTPFetcher ( $timeout = 20 )