PluginProbe
Gmail SMTP / trunk
Gmail SMTP vtrunk
1.2.3.21 1.2.3.20 trunk 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.9 1.2.0 1.2.3.14 1.2.3.15 1.2.3.16 1.2.3.18 1.2.3.5
gmail-smtp / google-api-php-client / vendor / google / auth / src / HttpHandler / HttpHandlerFactory.php

HttpHandlerFactory.php in Gmail SMTP trunk, at google-api-php-client/vendor/google/auth/src/HttpHandler/HttpHandlerFactory.php

74 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Copyright 2015 Google Inc. All Rights Reserved.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17 namespace Google\Auth\HttpHandler;
18
19 use Google\Auth\ApplicationDefaultCredentials;
20 use GuzzleHttp\BodySummarizer;
21 use GuzzleHttp\Client;
22 use GuzzleHttp\ClientInterface;
23 use GuzzleHttp\HandlerStack;
24 use GuzzleHttp\Middleware;
25 use Psr\Log\LoggerInterface;
26
27 class HttpHandlerFactory
28 {
29 /**
30 * Builds out a default http handler for the installed version of guzzle.
31 *
32 * @param ClientInterface|null $client
33 * @param null|false|LoggerInterface $logger
34 * @return Guzzle6HttpHandler|Guzzle7HttpHandler
35 * @throws \Exception
36 */
37 public static function build(
38 ?ClientInterface $client = null,
39 null|false|LoggerInterface $logger = null,
40 ) {
41 if (is_null($client)) {
42 $stack = null;
43 if (class_exists(BodySummarizer::class)) {
44 // double the # of characters before truncation by default
45 $bodySummarizer = new BodySummarizer(240);
46 $stack = HandlerStack::create();
47 $stack->remove('http_errors');
48 $stack->unshift(Middleware::httpErrors($bodySummarizer), 'http_errors');
49 }
50 $client = new Client(['handler' => $stack]);
51 }
52
53 $logger = ($logger === false)
54 ? null
55 : $logger ?? ApplicationDefaultCredentials::getDefaultLogger();
56
57 $version = null;
58 if (defined('GuzzleHttp\ClientInterface::MAJOR_VERSION')) {
59 $version = ClientInterface::MAJOR_VERSION;
60 } elseif (defined('GuzzleHttp\ClientInterface::VERSION')) {
61 $version = (int) substr(ClientInterface::VERSION, 0, 1);
62 }
63
64 switch ($version) {
65 case 6:
66 return new Guzzle6HttpHandler($client, $logger);
67 case 7:
68 return new Guzzle7HttpHandler($client, $logger);
69 default:
70 throw new \Exception('Version not supported');
71 }
72 }
73 }
74