Changeset View
Changeset View
Standalone View
Standalone View
externals/twilio-php/Services/Twilio/PartialApplicationHelper.php
- This file was added.
Property | Old Value | New Value |
---|---|---|
File Mode | null | 100755 |
<?php | |||||
/** | |||||
* Helper class to wrap an object with a modified interface created by | |||||
* a partial application of its existing methods. | |||||
* | |||||
* @category Services | |||||
* @package Services_Twilio | |||||
* @author Neuman Vong <neuman@twilio.com> | |||||
* @license http://creativecommons.org/licenses/MIT/ MIT | |||||
* @link http://pear.php.net/package/Services_Twilio | |||||
*/ | |||||
class Services_Twilio_PartialApplicationHelper | |||||
{ | |||||
private $callbacks; | |||||
public function __construct() | |||||
{ | |||||
$this->callbacks = array(); | |||||
} | |||||
public function set($method, $callback, array $args) | |||||
{ | |||||
if (!is_callable($callback)) { | |||||
return FALSE; | |||||
} | |||||
$this->callbacks[$method] = array($callback, $args); | |||||
} | |||||
public function __call($method, $args) | |||||
{ | |||||
if (!isset($this->callbacks[$method])) { | |||||
throw new Exception("Method not found: $method"); | |||||
} | |||||
list($callback, $cb_args) = $this->callbacks[$method]; | |||||
return call_user_func_array( | |||||
$callback, | |||||
array_merge($cb_args, $args) | |||||
); | |||||
} | |||||
} |