API Client类的真实示例

I'm trying to find some simple examples of a PHP class accessing a distributed API.

Whenever I search for a PHP API client it gives way too much information on building the API itself and little in the way of real access methods beyond the curl examples. A PHP class that includes a good curl method and a way to handle the requests would be nice. I learn by example and lots of re-arranging.

I started with a construct to catch the usual connection settings:

private $hosts = array( URI_1,  URI_2,  URI_3);
private $users = array( USER_1, USER_2, USER_3);
private $pass =  array( PASS_1, PASS_2, PASS_3);

    public function __construct($request = array())
    {
        if (is_array($request)) {
        if(isset($request['hostname'])) {
            if(in_array($request['hostname'], $hosts)) {
                $this->input['hostname'] = $request['hostname'];
            }
        }
        if (isset($request['username'])) {
            if(in_array($request['username'], $users)) {
                $this->input['username'] = $request['username'];
            }
        }
        if (isset($request['password'])) {
            if (in_array($request['password'], $pass)) {
                $this->input['password'] = $request['password'];
            }
        }
        if (isset($this->input['hostname']) &&
                isset($this->input['username']) &&
                isset($this->input['password'])) {
            return true;
        }
    } else {
        return false;
    }
}

Some simple examples of best practices would make this a lot easier.

Try out Guzzle:

Guzzle takes the pain out of sending HTTP requests and the redundancy out of creating web service clients.

Guzzle is a framework that includes the tools needed to create a robust web service client, including: Service descriptions for defining the inputs and outputs of an API, resource iterators for traversing paginated resources, batching for sending a large number of requests as efficiently as possible.