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