Subversion Repositories cheapmusic

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
103 - 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 GuzzleHttp\Client;
20
use GuzzleHttp\ClientInterface;
21
 
22
class HttpHandlerFactory
23
{
24
    /**
25
     * Builds out a default http handler for the installed version of guzzle.
26
     *
27
     * @param ClientInterface $client
28
     *
29
     * @return Guzzle5HttpHandler|Guzzle6HttpHandler
30
     *
31
     * @throws \Exception
32
     */
33
    public static function build(ClientInterface $client = null)
34
    {
35
        $version = ClientInterface::VERSION;
36
        $client = $client ?: new Client();
37
 
38
        switch ($version[0]) {
39
            case '5':
40
                return new Guzzle5HttpHandler($client);
41
            case '6':
42
                return new Guzzle6HttpHandler($client);
43
            default:
44
                throw new \Exception('Version not supported');
45
        }
46
    }
47
}