public function testAccessors() { $option = new OptionCallback(CURLOPT_HTTPAUTH); $option->setCallback(function ($value) { return $value . ' aaa'; }); $option->setValue('bbb'); static::assertEquals('bbb aaa', $option->getValue()); }
/** * 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; }