Example #1
0
 private function add_debug(array $request, &$options, $value, &$params)
 {
     if ($value === false) {
         return;
     }
     static $map = array(STREAM_NOTIFY_CONNECT => 'CONNECT', STREAM_NOTIFY_AUTH_REQUIRED => 'AUTH_REQUIRED', STREAM_NOTIFY_AUTH_RESULT => 'AUTH_RESULT', STREAM_NOTIFY_MIME_TYPE_IS => 'MIME_TYPE_IS', STREAM_NOTIFY_FILE_SIZE_IS => 'FILE_SIZE_IS', STREAM_NOTIFY_REDIRECTED => 'REDIRECTED', STREAM_NOTIFY_PROGRESS => 'PROGRESS', STREAM_NOTIFY_FAILURE => 'FAILURE', STREAM_NOTIFY_COMPLETED => 'COMPLETED', STREAM_NOTIFY_RESOLVE => 'RESOLVE');
     static $args = array('severity', 'message', 'message_code', 'bytes_transferred', 'bytes_max');
     $value = Core::getDebugResource($value);
     $ident = $request['http_method'] . ' ' . Core::url($request);
     $fn = function () use($ident, $value, $map, $args) {
         $passed = func_get_args();
         $code = array_shift($passed);
         fprintf($value, '<%s> [%s] ', $ident, $map[$code]);
         foreach (array_filter($passed) as $i => $v) {
             fwrite($value, $args[$i] . ': "' . $v . '" ');
         }
         fwrite($value, "\n");
     };
     // Wrap the existing function if needed.
     $params['notification'] = isset($params['notification']) ? Core::callArray([$params['notification'], $fn]) : $fn;
 }
Example #2
0
 public function testCreatesArrayCallFunctions()
 {
     $called = [];
     $a = function ($a, $b) use(&$called) {
         $called['a'] = func_get_args();
     };
     $b = function ($a, $b) use(&$called) {
         $called['b'] = func_get_args();
     };
     $c = Core::callArray([$a, $b]);
     $c(1, 2);
     $this->assertEquals([1, 2], $called['a']);
     $this->assertEquals([1, 2], $called['b']);
 }