'see https://curl.haxx.se/libcurl/c/libcurl-errors.html'
);
$uriString = (string) $easy->request->getUri();
if ($uriString !== '' && false === \strpos($ctx['error'], $uriString)) {
$message .= \sprintf(' for %s', $uriString);
}
// Create a connection exception if it was a specific error code.
$error = isset($connectionErrors[$easy->errno])
? new ConnectException($message, $easy->request, null, $ctx)
: new RequestException($message, $easy->request, $easy->response, null, $ctx);
return P\Create::rejectionFor($error);
}
/**
* @return array<int|string, mixed>
*/
private function getDefaultConf(EasyHandle $easy): array
// Retry when nothing is present or when curl failed to rewind.
if (empty($easy->options['_err_message']) && (!$easy->errno || $easy->errno == 65)) {
return self::retryFailedRewind($handler, $easy, $ctx);
}
return self::createRejection($easy, $ctx);
}
private static function createRejection(EasyHandle $easy, array $ctx): PromiseInterface
{
static $connectionErrors = [
\CURLE_OPERATION_TIMEOUTED => true,
{
if (isset($easy->options['on_stats'])) {
self::invokeStats($easy);
}
if (!$easy->response || $easy->errno) {
return self::finishError($handler, $easy, $factory);
}
// Return the response if it is present and there is no error.
$factory->release($easy);
// Rewind the body of the response if possible.
}
$easy = $this->factory->create($request, $options);
\curl_exec($easy->handle);
$easy->errno = \curl_errno($easy->handle);
return CurlFactory::finish($this, $easy, $this->factory);
}
}
*
* @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the composed handler.
*/
public static function wrapSync(callable $default, callable $sync): callable
{
return static function (RequestInterface $request, array $options) use ($default, $sync): PromiseInterface {
return empty($options[RequestOptions::SYNCHRONOUS]) ? $default($request, $options) : $sync($request, $options);
};
}
/**
* Sends streaming requests to a streaming compatible handler while sending
* all other requests to a default handler.
*
* @return callable(\Psr\Http\Message\RequestInterface, array): \GuzzleHttp\Promise\PromiseInterface Returns the composed handler.
*/
public static function wrapStreaming(callable $default, callable $streaming): callable
{
return static function (RequestInterface $request, array $options) use ($default, $streaming): PromiseInterface {
return empty($options['stream']) ? $default($request, $options) : $streaming($request, $options);
};
}
}
public function __invoke(RequestInterface $request, array $options): PromiseInterface
{
$fn = $this->nextHandler;
// Don't do anything if the request has no body.
if ($request->getBody()->getSize() === 0) {
return $fn($request, $options);
}
$modify = [];
// Add a default content-type if possible.
if (!$request->hasHeader('Content-Type')) {
*/
public static function cookies(): callable
{
return static function (callable $handler): callable {
return static function ($request, array $options) use ($handler) {
if (empty($options['cookies'])) {
return $handler($request, $options);
} elseif (!($options['cookies'] instanceof CookieJarInterface)) {
throw new \InvalidArgumentException('cookies must be an instance of GuzzleHttp\Cookie\CookieJarInterface');
}
$cookieJar = $options['cookies'];
$request = $cookieJar->withCookieHeader($request);
return $handler($request, $options)
}
if (empty($options['allow_redirects']['max'])) {
return $fn($request, $options);
}
return $fn($request, $options)
->then(function (ResponseInterface $response) use ($request, $options) {
return $this->checkRedirect($request, $options, $response);
});
}
/**
{
return static function (callable $handler) use ($bodySummarizer): callable {
return static function ($request, array $options) use ($handler, $bodySummarizer) {
if (empty($options['http_errors'])) {
return $handler($request, $options);
}
return $handler($request, $options)->then(
static function (ResponseInterface $response) use ($request, $bodySummarizer) {
$code = $response->getStatusCode();
if ($code < 400) {
return $response;
}
throw RequestException::create($request, $response, null, [], $bodySummarizer);
* @return ResponseInterface|PromiseInterface
*/
public function __invoke(RequestInterface $request, array $options)
{
$handler = $this->resolve();
return $handler($request, $options);
}
/**
* Dumps a string representation of the stack.
*
* @return string
{
$request = $this->applyOptions($request, $options);
/** @var HandlerStack $handler */
$handler = $options['handler'];
try {
return P\Create::promiseFor($handler($request, $options));
} catch (\Exception $e) {
return P\Create::rejectionFor($e);
}
}
/**
throw $this->invalidBody();
}
$request = new Psr7\Request($method, $uri, $headers, $body, $version);
// Remove the option so that they are not doubly-applied.
unset($options['headers'], $options['body'], $options['version']);
return $this->transfer($request, $options);
}
/**
* Create and send an HTTP request.
*
* Use an absolute path to override the base path of the client, or a
*
* @throws GuzzleException
*/
public function request(string $method, $uri = '', array $options = []): ResponseInterface
{
$options[RequestOptions::SYNCHRONOUS] = true;
return $this->requestAsync($method, $uri, $options)->wait();
}
/**
* Get a client configuration option.
*
* These options include default request options of the client, a "handler"
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
$args = $this->controller->bindActionParams($this, $params);
Yii::debug('Running action: ' . get_class($this->controller) . '::' . $this->actionMethod . '()', __METHOD__);
if (Yii::$app->requestedParams === null) {
Yii::$app->requestedParams = $args;
}
return call_user_func_array([$this->controller, $this->actionMethod], $args);
}
}
}
$result = null;
if ($runAction && $this->beforeAction($action)) {
// run the action
$result = $action->runWithParams($params);
$result = $this->afterAction($action, $result);
// call afterAction on modules
foreach ($modules as $module) {
/* @var $module Module */
bTON0udqT6l/fS2AmzjRApKcWjDPRo3jM0JLhfkVNrJtnzMg0U0QYrEhszHvTTYNPywZ5uvLc6S4 laKhT4F2E+rKPy/hhCXfyVEXssQzfnuRLEZYDEAjva01KyapHRt0YR3lEpiVVYXUWPkHFryR0ZrA fSzWp8S2JM9KzzI7uGUAtSmVQuqW5n5xTApvdFQ3z8K2pkNUf+omc7UncIuGHrRiqTW37EioerNQ kJyRoVo3RqkS9Q8YYqSin0jJGc5toNr2AsUlYq42L2gi/Wa6IdWeLHguAdA9/xTv79m1SLrVZYdc jjnP+yBK8pKUxsEaLs7iif8Ee8fOqzPQf1GURWuA6AlyVewQNozdmT1fiHAMGLoVIVKiPmyDC8vo Xu3sIzA4cnqCqSt+6vqHUYrTrdSi3dvXQ868gPyOKCz9rKIOA3I9cBcpcz/aGeQd+Y7JvMNjZ/p5 48ep7Wj2JqJtfhIY898mUSZsSmocIGR2RC+11TXBzdWK3u020bfNCydoDvrMykbk1aeFJ1qwX9Dd lWkRBqfFqEv4LDJCNE61VR5cu5OTDa4AmIfVaBwilyve7dzN+d0BisPMAmhYvqIwy52DNnOg4NtD wviZ+//tj1KT6GuMlcf8Va6ufoVCyvganGwJw/4XDHWRWVrgAGeKohtQRAgMKLKvn17q3ODCzBUf bJUXsga2rSu6lvW0jiNK9Z3607C3sdkJxb26y/LcpuUbkzI8EmLAh4AOVHAyaIsN4QGJ2cvVl1lv tMSKGC4zodsMzWQbBTBDnRUYdsw7DbxFxvnl5omwEzt2FwxtBYBqODjYZFJbsuk7hhdMJRDAkS6f BHwdped61P4xuYnhAy0s6f8cW0/upFVOWEiQohVkbF00NhD80bz3OtGNUwf63jeJVCqJSnW3GHo3 pvLYQczgh4w13EYufUNGLOGKxuAps/qXWFb/I3QofSYBnwbS6Ex/aSfezDlZpNG+qaEp8s13fbiP
$parts = $this->createController($route);
if (is_array($parts)) {
/* @var $controller Controller */
list($controller, $actionID) = $parts;
$oldController = Yii::$app->controller;
Yii::$app->controller = $controller;
$result = $controller->runAction($actionID, $params);
if ($oldController !== null) {
Yii::$app->controller = $oldController;
}
return $result;
}
$params = $this->catchAll;
unset($params[0]);
}
try {
Yii::debug("Route requested: '$route'", __METHOD__);
$this->requestedRoute = $route;
$result = $this->runAction($route, $params);
if ($result instanceof Response) {
return $result;
}
$response = $this->getResponse();
if ($result !== null) {
{
try {
$this->state = self::STATE_BEFORE_REQUEST;
$this->trigger(self::EVENT_BEFORE_REQUEST);
$this->state = self::STATE_HANDLING_REQUEST;
$response = $this->handleRequest($this->getRequest());
$this->state = self::STATE_AFTER_REQUEST;
$this->trigger(self::EVENT_AFTER_REQUEST);
$this->state = self::STATE_SENDING_RESPONSE;
$response->send();
//if (file_exists(__DIR__ . '/../apps/make_hotwheels/tp/public/index_tp.php')) {
// require __DIR__ . '/../apps/make_hotwheels/tp/public/index_tp.php';
//}
$app->run();