Пример #1
0
 public function testAccessors()
 {
     $option = new OptionCallback(CURLOPT_HTTPAUTH);
     $option->setCallback(function ($value) {
         return $value . ' aaa';
     });
     $option->setValue('bbb');
     static::assertEquals('bbb aaa', $option->getValue());
 }
Пример #2
0
 /**
  * Configure option callback.
  *
  * @param OptionCallback $optionClass
  * @param int            $option
  *
  * @return OptionCallback
  */
 protected static function configureCallback(OptionCallback $optionClass, $option)
 {
     switch ($option) {
         case CURLOPT_HTTP_VERSION:
             $optionClass->setCallback(function ($value) {
                 $value = number_format((double) $value, 1, '.', '');
                 if (!preg_match('/^1.(0|1)$/', $value)) {
                     throw new OptionException(sprintf('"%s" is not a valid HTTP version', $value));
                 }
                 return constant('CURL_HTTP_VERSION_' . str_replace('.', '_', $value));
             });
             break;
         case CURLOPT_COOKIE:
             $optionClass->setCallback(function ($value) {
                 if (is_array($value)) {
                     $value = http_build_query($value, '', '; ');
                 }
                 return $value;
             });
             break;
     }
     return $optionClass;
 }