This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
khosb/modules/oauth/classes/Kohana/OAuth/Token.php
2013-05-27 22:10:41 +10:00

95 lines
1.7 KiB
PHP

<?php defined('SYSPATH') OR die('No direct access allowed.');
/**
* OAuth Token
*
* @package Kohana/OAuth
* @category Token
* @author Kohana Team
* @copyright (c) 2010 Kohana Team
* @license http://kohanaframework.org/license
* @author Deon George
* @copyright (c) 2009-2013 Deon George
* @license http://dev.leenooks.net/license.html
* @since 3.0.7
*/
abstract class Kohana_OAuth_Token {
/**
* Create a new token object.
*
* $token = OAuth_Token::factory($name);
*
* @param string token type
* @param array token options
* @return OAuth_Token
*/
public static function factory($name, array $options = NULL)
{
$class = 'OAuth_Token_'.ucfirst($name);
return new $class($options);
}
/**
* @var string token type name: request, access
*/
protected $name;
/**
* @var string token key
*/
protected $token;
/**
* @var string required parameters
*/
protected $required = array(
'token',
);
/**
* Sets the token and secret values.
*
* @param array token options
* @return void
*/
public function __construct(array $options = NULL)
{
foreach ($this->required as $key)
{
if ( ! isset($options[$key]))
{
throw new Kohana_OAuth_Exception('Required option not passed: :option',
array(':option' => $key));
}
$this->$key = $options[$key];
}
}
/**
* Return the value of any protected class variable.
*
* // Get the token secret
* $secret = $token->secret;
*
* @param string variable name
* @return mixed
*/
public function __get($key)
{
return $this->$key;
}
/**
* Returns the token key.
*
* @return string
*/
public function __toString()
{
return (string) $this->token;
}
} // End OAuth_Token