Subversion Repositories cheapmusic

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
25 - 1
<?php
2
/**
3
 * Copyright 2017 Facebook, Inc.
4
 *
5
 * You are hereby granted a non-exclusive, worldwide, royalty-free license to
6
 * use, copy, modify, and distribute this software in source code or binary
7
 * form for use in connection with the web services and APIs provided by
8
 * Facebook.
9
 *
10
 * As with any software that integrates with the Facebook platform, your use
11
 * of this software is subject to the Facebook Developer Principles and
12
 * Policies [http://developers.facebook.com/policy/]. This copyright notice
13
 * shall be included in all copies or substantial portions of the software.
14
 *
15
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21
 * DEALINGS IN THE SOFTWARE.
22
 *
23
 */
24
namespace Facebook\HttpClients;
25
 
26
/**
27
 * Class FacebookStream
28
 *
29
 * Abstraction for the procedural stream elements so that the functions can be
30
 * mocked and the implementation can be tested.
31
 *
32
 * @package Facebook
33
 */
34
class FacebookStream
35
{
36
    /**
37
     * @var resource Context stream resource instance
38
     */
39
    protected $stream;
40
 
41
    /**
42
     * @var array Response headers from the stream wrapper
43
     */
44
    protected $responseHeaders = [];
45
 
46
    /**
47
     * Make a new context stream reference instance
48
     *
49
     * @param array $options
50
     */
51
    public function streamContextCreate(array $options)
52
    {
53
        $this->stream = stream_context_create($options);
54
    }
55
 
56
    /**
57
     * The response headers from the stream wrapper
58
     *
59
     * @return array
60
     */
61
    public function getResponseHeaders()
62
    {
63
        return $this->responseHeaders;
64
    }
65
 
66
    /**
67
     * Send a stream wrapped request
68
     *
69
     * @param string $url
70
     *
71
     * @return mixed
72
     */
73
    public function fileGetContents($url)
74
    {
75
        $rawResponse = file_get_contents($url, false, $this->stream);
76
        $this->responseHeaders = $http_response_header ?: [];
77
 
78
        return $rawResponse;
79
    }
80
}