[ Index ]

PHP Cross Reference of Joomla 1.5.26 DE

title

Body

[close]

/libraries/openid/Auth/Yadis/ -> Yadis.php (summary)

The core PHP Yadis implementation. PHP versions 4 and 5

Author: JanRain, Inc. <openid@janrain.com>
Copyright: 2005-2008 Janrain, Inc.
License: http://www.apache.org/licenses/LICENSE-2.0 Apache
File Size: 385 lines (12 kb)
Included or required:0 times
Referenced: 0 times
Includes or requires: 0 files

Defines 2 classes

Auth_Yadis_DiscoveryResult:: (7 methods):
  Auth_Yadis_DiscoveryResult()
  fail()
  isFailure()
  services()
  usedYadisLocation()
  isXRDS()
  Auth_Yadis_getServiceEndpoints()

Auth_Yadis_Yadis:: (5 methods):
  getHTTPFetcher()
  curlPresent()
  _getHeader()
  _getContentType()
  discover()


Class: Auth_Yadis_DiscoveryResult  - X-Ref

Contains the result of performing Yadis discovery on a URI.

Auth_Yadis_DiscoveryResult($request_uri)   X-Ref
No description

fail()   X-Ref
No description

isFailure()   X-Ref
No description

services()   X-Ref
Returns the list of service objects as described by the XRDS
document, if this yadis object represents a successful Yadis
discovery.

return: array $services An array of {@link Auth_Yadis_Service}

usedYadisLocation()   X-Ref
No description

isXRDS()   X-Ref
No description

Auth_Yadis_getServiceEndpoints($input_url, $xrds_parse_func,$discover_func=null, $fetcher=null)   X-Ref
Perform the Yadis protocol on the input URL and return an iterable
of resulting endpoint objects.

input_url: The URL on which to perform the Yadis protocol

return: : The normalized identity URL and an iterable of endpoint

Class: Auth_Yadis_Yadis  - X-Ref

This is the core of the PHP Yadis library.  This is the only class
a user needs to use to perform Yadis discovery.  This class
performs the discovery AND stores the result of the discovery.

First, require this library into your program source:

<pre>  require_once "Auth/Yadis/Yadis.php";</pre>

To perform Yadis discovery, first call the "discover" method
statically with a URI parameter:

<pre>  $http_response = array();
$fetcher = Auth_Yadis_Yadis::getHTTPFetcher();
$yadis_object = Auth_Yadis_Yadis::discover($uri,
$http_response, $fetcher);</pre>

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

<pre>  $service_list = $yadis_object->services();</pre>

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():

<pre>  $service_list = $yadis_object->services(
array("filterByURI",
"filterByExtension"));</pre>

The filter functions (whose names appear in the array passed to
services()) take the following form:

<pre>  function myFilter(&$service) {
// Query $service object here.  Return true if the service
// matches your query; false if not.
}</pre>

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):

<pre>
function URIMatcher(&$service) {
foreach ($service->getElements('xrd:URI') as $uri) {
if (preg_match("/some_pattern/",
$service->parser->content($uri))) {
return true;
}
}
return false;
}</pre>

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():

<pre>  $yadis_object->services(array("filter1", "filter2"),
SERVICES_YADIS_MATCH_ALL);</pre>

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}.

getHTTPFetcher($timeout = 20)   X-Ref
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.

If Auth_Yadis_CURL_OVERRIDE is defined, this method will always
return a {@link Auth_Yadis_PlainHTTPFetcher}.

curlPresent()   X-Ref
No description

_getHeader($header_list, $names)   X-Ref


_getContentType($content_type_header)   X-Ref


discover($uri, &$fetcher,$extra_ns_map = null, $timeout = 20)   X-Ref
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.

param: string $uri The URI on which to perform Yadis discovery.
param: array $http_response An array reference where the HTTP
param: Auth_Yadis_HTTPFetcher $fetcher An instance of a
param: array $extra_ns_map An array which maps namespace names
param: integer $timeout An optional fetcher timeout, in seconds.
return: mixed $obj Either null or an instance of



Generated: Wed Mar 28 15:54:07 2012 Cross-referenced by PHPXref 0.7.1