<?php defined('SYSPATH') OR die('No direct access allowed.'); /** * OAuth API * * @package OAuth * @category Classes * @author Deon George * @copyright (c) 2009-2013 Deon George * @license http://dev.leenooks.net/license.html */ abstract class Kohana_OAuth_API { /** * @var string profile data */ protected $profile; /** * Create a new API object. * * $API = OAuth_API::factory($name); * * @param string API type * @param array API options * @return OAuth_API */ public static function factory(OAuth_Provider $provider, $name, array $options = NULL) { $class = 'OAuth_API_'.ucfirst($name).'_'.ucfirst($provider->name); return new $class($options); } /** * @var string required parameters */ protected $required = array( 'profile', ); /** * Sets the API data. * * @param array API 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 API details * $secret = $api->id; * * @param string variable name * @return mixed */ public function __get($key) { return $this->$key; } /** * Returns the API key. * * @return string */ public function __toString() { return (string) $this->profile; } } // End OAuth_API