1<?php
2
3namespace OAuth\Common\Http\Client;
4
5/**
6 * Abstract HTTP client
7 */
8abstract class AbstractClient implements ClientInterface
9{
10    /**
11     * @var string The user agent string passed to services
12     */
13    protected $userAgent;
14
15    /**
16     * @var int The maximum number of redirects
17     */
18    protected $maxRedirects = 5;
19
20    /**
21     * @var int The maximum timeout
22     */
23    protected $timeout = 15;
24
25    /**
26     * Creates instance
27     *
28     * @param string $userAgent The UA string the client will use
29     */
30    public function __construct($userAgent = 'PHPoAuthLib')
31    {
32        $this->userAgent = $userAgent;
33    }
34
35    /**
36     * @param int $redirects Maximum redirects for client
37     *
38     * @return ClientInterface
39     */
40    public function setMaxRedirects($redirects)
41    {
42        $this->maxRedirects = $redirects;
43
44        return $this;
45    }
46
47    /**
48     * @param int $timeout Request timeout time for client in seconds
49     *
50     * @return ClientInterface
51     */
52    public function setTimeout($timeout)
53    {
54        $this->timeout = $timeout;
55
56        return $this;
57    }
58
59    /**
60     * @param array $headers
61     */
62    public function normalizeHeaders(&$headers)
63    {
64        // Normalize headers
65        array_walk(
66            $headers,
67            function (&$val, &$key) {
68                $key = ucfirst(strtolower($key));
69                $val = ucfirst(strtolower($key)) . ': ' . $val;
70            }
71        );
72    }
73}
74