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) | |||||
| ); | |||||
| } | |||||
| } | |||||