mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-25 08:12:40 +01:00
41 lines
1 KiB
PHP
41 lines
1 KiB
PHP
<?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)
|
|
);
|
|
}
|
|
}
|