1<?php 2 3/** 4 * An interface for OpenID extensions. 5 * 6 * @package OpenID 7 */ 8 9/** 10 * Require the Message implementation. 11 */ 12require_once 'Auth/OpenID/Message.php'; 13 14/** 15 * A base class for accessing extension request and response data for 16 * the OpenID 2 protocol. 17 * 18 * @package OpenID 19 */ 20class Auth_OpenID_Extension { 21 /** 22 * ns_uri: The namespace to which to add the arguments for this 23 * extension 24 */ 25 var $ns_uri = null; 26 var $ns_alias = null; 27 28 /** 29 * Get the string arguments that should be added to an OpenID 30 * message for this extension. 31 */ 32 function getExtensionArgs() 33 { 34 return null; 35 } 36 37 /** 38 * Add the arguments from this extension to the provided message. 39 * 40 * Returns the message with the extension arguments added. 41 */ 42 function toMessage($message) 43 { 44 $implicit = $message->isOpenID1(); 45 $added = $message->namespaces->addAlias($this->ns_uri, 46 $this->ns_alias, 47 $implicit); 48 49 if ($added === null) { 50 if ($message->namespaces->getAlias($this->ns_uri) != 51 $this->ns_alias) { 52 return null; 53 } 54 } 55 56 $message->updateArgs($this->ns_uri, 57 $this->getExtensionArgs()); 58 return $message; 59 } 60} 61 62